perm filename DIAL78.XGP[DIA,JMC] blob
sn#484853 filedate 1979-10-28 generic text, type T, neo UTF8
/LMAR=0/XLINE=3/FONT#0=BASL30/FONT#1=BASI30/FONT#2=BASB30/FONT#3=GACB25/FONT#4=SUP/FONT#5=NGR20/FONT#6=METLB/FONT#7=MS25/FONT#8=SAIL25/FONT#9=SIGN57/FONT#10=FIX25
␈↓ ↓H␈↓ ␈↓ ¬≡DIALNET
␈↓ ↓H␈↓ ␈↓ ∧ ␈↓εA Computer Communication Study
␈↓ ↓H␈↓ε␈↓ ¬=␈↓αproposal submitted to
␈↓ ↓H␈↓ε␈↓ ∧WNational Science Foundation
␈↓ ↓H␈↓α␈↓ ¬0Washington, D.C. 20550
␈↓ ↓H␈↓α␈↓ ε?by
␈↓ ↓H␈↓α␈↓ ¬↓Computer Science Department
␈↓ ↓H␈↓α␈↓ ¬≡␈↓εStanford University
␈↓ ↓H␈↓ε␈↓ ¬≥␈↓αStanford, California 94305
␈↓ ↓H␈↓α␈↓ ¬↑␈↓εAugust 1978
␈↓ ↓H␈↓α␈↓ β_Research Proposal Submitted to the National Science Foundation
␈↓ ↓H␈↓Proposed Amount ␈↓&␈↓λ$136,055␈↓␈↓)αβ Proposed E≥ective Date ␈↓&␈↓λ1 Jan. 1979␈↓␈↓)αβ Proposed Duration ␈↓&␈↓λ2 years␈↓␈↓)αβ
␈↓ ↓H␈↓Title ␈↓&␈↓λDialnet: a Computer Communication Study␈↓␈↓)αβ
␈↓ ↓H␈↓Principal Investigator:␈↓ ¬hSubmitting Institution:
␈↓ ↓H␈↓ ␈↓&␈↓λProfessor John McCarthy␈↓␈↓)αβ␈↓ ¬h ␈↓&␈↓λStanford University␈↓␈↓)αβ
␈↓ ↓H␈↓ Soc. Sec. No. ␈↓&␈↓λ558-30-4793␈↓␈↓)αβ␈↓ ¬h Department ␈↓&␈↓λComputer Science Department␈↓␈↓)αβ
␈↓ ↓H␈↓␈↓ ¬h Branch ␈↓&␈↓λSchool of Humanities and Sciences␈↓␈↓)αβ
␈↓ ↓H␈↓Make grant to ␈↓&␈↓λ Leland Stanford Junior University ␈↓␈↓)αβ
␈↓ ↓H␈↓Endorsements:
␈↓ ↓H␈↓␈↓ αXPrincipal Investigator␈↓ ¬hDepartment Head␈↓ λxAdministrative O≠cial
␈↓ ↓H␈↓Name␈↓ αX␈↓&␈↓λJohn McCarthy ␈↓␈↓)αβ␈↓ ¬h␈↓&␈↓λEdward A. Feigenbaum ␈↓␈↓)αβ␈↓ λx␈↓&␈↓λ ␈↓␈↓)αβ
␈↓ ↓H␈↓Signature␈↓ αX␈↓&␈↓λ ␈↓␈↓)αβ␈↓ ¬h␈↓&␈↓λ ␈↓␈↓)αβ␈↓ λx␈↓&␈↓λ ␈↓␈↓)αβ
␈↓ ↓H␈↓Title␈↓ αX␈↓&␈↓λ Professor ␈↓␈↓)αβ␈↓ ¬h␈↓&␈↓λProfessor & Chairman ␈↓␈↓)αβ␈↓ λx␈↓&␈↓λ ␈↓␈↓)αβ
␈↓ ↓H␈↓Telephone␈↓ αX␈↓&␈↓λ(415) 497-4430 ␈↓␈↓)αβ␈↓ ¬h␈↓&␈↓λ(415) 497-4878 ␈↓␈↓)αβ␈↓ λx␈↓&␈↓λ ␈↓␈↓)αβ
␈↓ ↓H␈↓Date␈↓ αX␈↓&␈↓λ ␈↓␈↓)αβ␈↓ ¬h␈↓&␈↓λ ␈↓␈↓)αβ␈↓ λx␈↓&␈↓λ ␈↓␈↓)αβ
␈↓ ↓H␈↓α␈↓ ¬VTable of Contents␈↓ Ni
␈↓ ↓H␈↓α␈↓ αλSection␈↓ ¬gPage
␈↓ ↓H␈↓1. Current Proposal␈↓ ε¬ 1
␈↓ ↓H␈↓␈↓ β+␈↓αAppendices␈↓
␈↓ ↓H␈↓A. Original Dialnet Proposal␈↓ ε¬ 2
␈↓ ↓H␈↓B. Basic line protocol␈↓ ε¬ 6
␈↓ ↓H␈↓C. File transfer protocol␈↓ ¬v 12
␈↓ ↓H␈↓D. Mail protocol␈↓ ¬v 20
␈↓ ↓H␈↓E. Personnel␈↓ ¬v 24
␈↓ ↓H␈↓F. Facilities␈↓ ¬v 26
␈↓ ↓H␈↓G. Current Support␈↓ ¬v 27
␈↓ ↓H␈↓H. Budget␈↓ ¬v 29
␈↓ ↓H␈↓α␈↓ εP␈↓ L1
␈↓ ↓H␈↓α␈↓ αq1. Current Proposal ␈↓ εx␈↓Work␈α∃has␈α∃started␈α∃on␈α∃the␈α∃line␈α∀transmission
␈↓ εx␈↓protocol␈α∨at␈α∨LOTS.␈α∨ We␈α∨hope␈α∨to␈α≡have
␈↓ ↓H␈↓The␈α
aim␈αof␈α
the␈αproject␈α
is␈αthe␈α
same␈αas␈α
that␈αof ␈↓ εx␈↓experimental␈α$mail␈α#and␈α$virtual␈α#terminal
␈↓ ↓H␈↓our␈α∃previous␈α∃proposal␈α∃a␈α∃copy␈α∃of␈α∃which␈α∀is ␈↓ εx␈↓protocols␈α∂running␈α∂and␈α∂available␈α∂for␈α⊂users␈α∂by
␈↓ ↓H␈↓included␈α∂as␈α∂appendix␈α∞A.␈α∂ We␈α∂have␈α∞generally ␈↓ εx␈↓the end of the summer.
␈↓ ↓H␈↓followed␈α∞the␈α∂approach␈α∞laid␈α∞out␈α∂there,␈α∞though
␈↓ ↓H␈↓speci≡c␈α↔plans␈α↔have␈α⊗been␈α↔altered␈α↔based␈α⊗on ␈↓ εx␈↓The␈α∀biggest␈α∀problem␈α∀encountered␈α∀so␈α∀far␈α∀is
␈↓ ↓H␈↓experience. ␈↓ εx␈↓that␈α∃some␈α⊗operating␈α∃systems␈α∃are␈α⊗unable␈α∃to
␈↓ εx␈↓sustain␈α≥the␈α≥1200␈α≥baud␈α≥transmission␈α≤rate
␈↓ ↓H␈↓Up␈α∃to␈α∃July␈α∃1978,␈α∀one␈α∃year␈α∃into␈α∃the␈α∀grant ␈↓ εx␈↓without␈α∪bu≥er␈α∪ over∨ow.␈α∪ Other␈α∀systems␈α∪do
␈↓ ↓H␈↓period, the following had been accomplished:␈↓ εx␈↓not␈α
have␈αthis␈α
problem,␈α
but␈αare␈α
too␈α"helpful"␈α
in
␈↓ εx␈↓that␈α∀they␈α∪insert␈α∀spurious␈α∪bytes␈α∀in␈α∀the␈α∪data
␈↓ ↓H␈↓1.␈α_We␈α_have␈α↔conferred␈α_with␈α_the␈α↔following ␈↓ εx␈↓stream␈α≤to␈α≤warn␈α≤about␈α≤a␈α≥possible␈α≤bu≥er
␈↓ ↓H␈↓individuals␈α∩and␈α∩groups␈α∩on␈α∩our␈α∪plans␈α∩about ␈↓ εx␈↓over∨ow␈α∂and␈α∂in␈α∂the␈α∂process␈α∂confuse␈α∂any␈α∂line
␈↓ ↓H␈↓the form the protocols should take: ␈↓ εx␈↓protocol␈α⊗negotiations␈α⊗going␈α⊗on.␈α⊗ Of␈α∃course,
␈↓ ↓H␈↓␈↓ ↓hVint Cerf, Defense Advanced Research ␈↓ εx␈↓Dialnet␈α
recovers␈α
from␈α
this␈α∞condition␈α
properly,
␈↓ ↓H␈↓␈↓ βλProjects Agency ␈↓ εx␈↓but␈α∪not␈α∀without␈α∪data␈α∪bandwidth␈α∀being␈α∪lost
␈↓ ↓H␈↓␈↓ ↓hSandy Fraser, et al, Bell Telephone ␈↓ εx␈↓unnecessarily.
␈↓ ↓H␈↓␈↓ βλLaboratories
␈↓ ↓H␈↓␈↓ ↓hChris Ryland, Columbia University ␈↓ εx␈↓There␈α∃are␈α∃at␈α∃least␈α∃two␈α∃ways␈α∃around␈α∀these
␈↓ ↓H␈↓␈↓ ↓hStu Wecker, et al, Digital Equipment ␈↓ εx␈↓problems:␈α∂to␈α∂modify␈α∂the␈α∂operating␈α∂systems␈α∞or
␈↓ ↓H␈↓␈↓ βλCorporation ␈↓ εx␈↓to␈α⊂develop␈α⊃a␈α⊂microprocessor␈α⊂front␈α⊃end.␈α⊂ The
␈↓ ↓H␈↓␈↓ ↓hMichael Blasgen, IBM ␈↓ εx␈↓latter␈α
is␈α
somewhat␈αmore␈α
general␈α
and␈αalso␈α
o≥ers
␈↓ ↓H␈↓␈↓ ↓hDavid Moon, Ken Pogran, MIT ␈↓ εx␈↓the␈αpossibility␈αof␈α
putting␈αmost␈αof␈αthe␈α
overhead
␈↓ ↓H␈↓␈↓ ↓hGlenn Richart, National Institutes of Health␈↓ εx␈↓of␈αthe␈αline␈αprotocol␈αin␈αthe␈αfront␈αend.␈α
Most␈αof
␈↓ ↓H␈↓␈↓ ↓hGeo≥ Goodfellow, SRI International ␈↓ εx␈↓our␈α→early␈α→work␈α→has␈α→been␈α→on␈α→the␈α→former
␈↓ εx␈↓approach,␈α∂but␈α∂in␈α∂the␈α∞next␈α∂period␈α∂we␈α∂plan␈α∞to
␈↓ ↓H␈↓We␈α→believe␈α→we␈α→can␈α→satisfy␈α→all␈α_reasonable ␈↓ εx␈↓pursue␈α∞the␈α∞latter.␈α∞ Toward␈α∞this␈α∞end,␈α∂we␈α∞have
␈↓ ↓H␈↓requirements if not all reasonable tastes. ␈↓ εx␈↓included␈α≡in␈α≡the␈α≥budget␈α≡funds␈α≡for␈α≥four
␈↓ εx␈↓microprocessor controlled modems.
␈↓ ↓H␈↓2.␈α
The␈α
following␈αprotocols␈α
exist␈α
in␈α
draft␈αform
␈↓ ↓H␈↓and␈α∞are␈α∂included␈α∞as␈α∞appendices␈α∂B␈α∞thru␈α∂D␈α∞of ␈↓ εx␈↓In␈α∀the␈α∀period␈α∀of␈α∀this␈α∀proposal␈α∀we␈α∀plan␈α∪to
␈↓ ↓H␈↓this proposal: ␈↓ εx␈↓re≡ne␈α∃and␈α∃extend␈α∃the␈α∃basic␈α∀communication
␈↓ ↓H␈↓ B. Basic line protocol ␈↓ εx␈↓protocols␈α
and␈α
invite␈α
a␈αnumber␈α
of␈α
new␈α
sites␈αto
␈↓ ↓H␈↓ C. File transfer protocol ␈↓ εx␈↓join␈α1in␈α1experimental␈α1implementations.
␈↓ ↓H␈↓ D. Mail protocol (preliminary) ␈↓ εx␈↓Assuming␈α/general␈α.acceptance␈α/of␈α.the
␈↓ ↓H␈↓A␈α*virtual␈α*terminal␈α*protocol␈α+will␈α*be ␈↓ εx␈↓experimental␈α∪network,␈α∪we␈α∪shall␈α∪endeavor␈α∪to
␈↓ ↓H␈↓forthcoming shortly. ␈↓ εx␈↓get␈α≤the␈α≤protocols␈α≤adopted␈α≤as␈α≤a␈α≤national
␈↓ εx␈↓standard.
␈↓ ↓H␈↓3.␈α∂Modems␈α∞have␈α∂been␈α∞acquired␈α∂and␈α∞installed
␈↓ ↓H␈↓at␈α+the␈α+Stanford␈α,Arti≡cial␈α+Intelligence
␈↓ ↓H␈↓Laboratory␈α#and␈α"at␈α#the␈α#Stanford␈α"Low-
␈↓ ↓H␈↓Overhead␈α↔Time-sharing␈α↔System.␈α↔ We␈α⊗have
␈↓ ↓H␈↓chosen␈α∞the␈α
Bell␈α∞System␈α
1200-1200␈α∞full␈α
duplex
␈↓ ↓H␈↓protocol␈α
for␈α
the␈α
modems␈α
and␈α∞have␈α
purchased
␈↓ ↓H␈↓Vadic modems meeting this standard.
␈↓ ↓H␈↓4.␈α∞The␈α∞basic␈α∞line␈α∞transmission␈α∂protocols␈α∞have
␈↓ ↓H␈↓been␈α≥programmed␈α≡at␈α≥SAIL␈α≡and␈α≥revised
␈↓ ↓H␈↓several␈α⊂times␈α∂in␈α⊂the␈α∂light␈α⊂of␈α⊂that␈α∂experience.
␈↓ ↓H␈↓α␈↓ εP␈↓ J2
␈↓ ↓H␈↓α␈↓ β%Appendix A ␈↓ εx␈↓been␈α⊃started,␈α∩but␈α⊃they␈α∩all␈α⊃have␈α∩problems␈α⊃of
␈↓ ↓H␈↓α␈↓ αIOriginal Dialnet Proposal ␈↓ εx␈↓expense␈αand␈α
␈↓↓also␈αof␈αdeciding␈α
who␈αshould␈α
be␈αon
␈↓ εx␈↓↓them␈↓.␈α
Some␈α
facilities␈α
have␈α
gone␈α
to␈α
the␈α
expense
␈↓ εx␈↓of joining more than one network.
␈↓ ↓H␈↓α␈↓ β/1. Purpose
␈↓ εx␈↓ We␈αpropose␈αto␈αdesign␈αprotocols␈αthat␈αcan
␈↓ ↓H␈↓This␈α⊂is␈α⊂a␈α⊂request␈α⊂for␈α⊂a␈α⊂grant␈α⊂to␈α⊃support␈α⊂an ␈↓ εx␈↓be␈α∂implemented␈α∂at␈α∂any␈α∂time-shared␈α∂computer
␈↓ ↓H␈↓eighteen␈α"month␈α!study␈α"and␈α!experimental ␈↓ εx␈↓installation␈α$without␈α$joining␈α$any␈α$formal
␈↓ ↓H␈↓implementation␈αof␈αprotocols␈αthat␈αwould␈αpermit ␈↓ εx␈↓network.␈α∃ The␈α∃hardware␈α∃cost␈α∃will␈α⊗be␈α∃from
␈↓ ↓H␈↓ARPAnet-like␈α
facilities␈α
to␈α
be␈α
provided␈α
to␈αany ␈↓ εx␈↓$1000␈α
to␈α
$5000␈α
depending␈α
on␈α
how␈α
di≠cult␈α
it␈α
is
␈↓ ↓H␈↓time-sharing␈α?␈ααcomputer␈α?␈ααsystem␈α?␈ααthat ␈↓ εx␈↓to␈α
connect␈αdevices␈α
to␈αthe␈α
computer.␈α There␈α
will
␈↓ ↓H␈↓implemented␈α∪them␈α∩and␈α∪equipped␈α∪itself␈α∩with ␈↓ εx␈↓be␈α∃programs␈α∃to␈α∃operate␈α∃a␈α⊗telephone␈α∃dialer
␈↓ ↓H␈↓telephone␈α→dialing␈α→equipment␈α→and␈α→modems. ␈↓ εx␈↓(rented␈α⊂from␈α⊂the␈α⊂telephone␈α⊂company)␈α⊃and␈α⊂to
␈↓ ↓H␈↓We␈α∩call␈α∩the␈α∩system␈α∩Dialnet␈α∩by␈α∩analogy,␈α∩but ␈↓ εx␈↓transmit␈α
signals␈α
and␈α
information␈α∞according␈α
to
␈↓ ↓H␈↓unlike␈α(the␈α(ARPAnet,␈α(it␈α(requires␈α'no ␈↓ εx␈↓the␈α⊃protocols.␈α⊂ Any␈α⊃installation␈α⊂implementing
␈↓ ↓H␈↓administrator to "admit" new members. ␈↓ εx␈↓the␈αprotocols␈αwill␈αbe␈αable␈αto␈αcommunicate␈αwith
␈↓ εx␈↓any␈α∂other.␈α∂ The␈α∂only␈α⊂disadvantage␈α∂compared
␈↓ ↓H␈↓ The␈α2ARPAnet␈α2connects␈α2several ␈↓ εx␈↓with␈α⊃the␈α⊃ARPAnet␈α⊂will␈α⊃be␈α⊃lower␈α⊃speed␈α⊂and
␈↓ ↓H␈↓hundred␈α⊂computer␈α⊂facilities␈α⊂and␈α⊃allows␈α⊂users ␈↓ εx␈↓higher␈α⊂cost␈α⊂when␈α∂the␈α⊂volume␈α⊂of␈α∂information
␈↓ ↓H␈↓of␈α⊗one␈α∃system␈α⊗to␈α⊗log␈α∃in␈α⊗on␈α⊗others,␈α∃allows ␈↓ εx␈↓transferred is very high.
␈↓ ↓H␈↓transmission␈α↔of␈α↔messages␈α↔between␈α_users␈α↔of
␈↓ ↓H␈↓di≥erent␈αcomputers,␈αand␈αallows␈αthe␈αtransfer␈αof ␈↓ εx␈↓ Like␈α∃ARPAnet,␈α∃Dialnet␈α∃will␈α⊗be␈α∃most
␈↓ ↓H␈↓≡les␈α∃between␈α∃computers.␈α∃ More␈α∃generally,␈α∀it ␈↓ εx␈↓useful␈α∩to␈α∩␈↓↓full␈α∩time-sharing␈α∩systems␈↓.␈α∩ In␈α⊃such
␈↓ ↓H␈↓allows␈α
interaction␈αamong␈α
programs␈αin␈α
di≥erent ␈↓ εx␈↓systems,␈α⊂each␈α∂user␈α⊂has␈α∂named␈α⊂disk␈α⊂≡les␈α∂than
␈↓ ↓H␈↓computers. ␈↓ εx␈↓are␈αkept␈αin␈αthe␈αsystem␈αeven␈αwhen␈αhe␈αis␈αabsent
␈↓ εx␈↓(and␈α∩therefore␈α∩remotely␈α∩accessible),␈α∩and␈α∩new
␈↓ ↓H␈↓ These␈αfacilities␈αhave␈αproven␈αvaluable␈α
in␈↓ εx␈↓≡les␈α
can␈αbe␈α
created␈αby␈α
≡le␈αtransfer␈α
from␈αother
␈↓ ↓H␈↓permitting␈α≤collaboration␈α≥between␈α≤computer ␈↓ εx␈↓machines␈α∪and␈α∪on␈α∪receipt␈α∪of␈α∪messages.␈α∪ The
␈↓ ↓H␈↓scientists␈α⊃at␈α⊃di≥erent␈α⊃sites␈α⊃and␈α∩in␈α⊃permitting ␈↓ εx␈↓usefulness␈α∩of␈α∪the␈α∩message␈α∪facilities␈α∩normally
␈↓ ↓H␈↓nationwide␈α∂access␈α∂to␈α∞unique␈α∂facilities␈α∂such␈α∞as ␈↓ εx␈↓requires␈α↔that␈α↔users␈α↔habitually␈α↔log␈α↔in␈α⊗each
␈↓ ↓H␈↓the␈α∩MACSYMA␈α∩system␈α∩for␈α∩computing␈α⊃with ␈↓ εx␈↓working␈α∀day␈α∀and␈α∀are␈α∀most␈α∃bene≡cial␈α∀when
␈↓ ↓H␈↓algebraic␈αand␈α
analytic␈αexpressions␈α
at␈αM.I.T.␈α
It ␈↓ εx␈↓users␈α⊗have␈α⊗individual␈α⊗display␈α↔terminals␈α⊗in
␈↓ ↓H␈↓permits␈α⊂a␈α⊂new␈α∂form␈α⊂of␈α⊂publication␈α⊂in␈α∂which ␈↓ εx␈↓their␈α⊗o≠ces.␈α⊗ Further␈α⊗bene≡ts␈α↔accrue␈α⊗when
␈↓ ↓H␈↓documents␈α→are␈α_kept␈α→in␈α_the␈α→computer,␈α_are ␈↓ εx␈↓reports␈α⊗are␈α∃normally␈α⊗prepared␈α⊗at␈α∃terminals
␈↓ ↓H␈↓continuously␈α'updatable,␈α(are␈α'immediately ␈↓ εx␈↓and␈α∂when␈α∂secretaries␈α∞use␈α∂terminals␈α∂for␈α∞letters
␈↓ ↓H␈↓accessible␈α→throughout␈α→the␈α→country,␈α→and␈α→in ␈↓ εx␈↓and␈α∞messages.␈α∂ However,␈α∞many␈α∂less␈α∞advanced
␈↓ ↓H␈↓which␈αcomments␈αfrom␈αreaders␈αare␈αaccessible␈α
to ␈↓ εx␈↓installations␈α∞have␈α∞found␈α∞the␈α∞ARPAnet␈α
useful
␈↓ ↓H␈↓other readers. ␈↓ εx␈↓and␈α∃more␈α∃and␈α∃more␈α∃systems␈α∃are␈α∃acquiring
␈↓ εx␈↓economical full time-sharing capability.
␈↓ ↓H␈↓ The␈α∃usefulness␈α∃of␈α∃the␈α⊗ARPAnet␈α∃has
␈↓ ↓H␈↓prompted␈α∃many␈α∃non-defense␈α∃installations␈α∃to ␈↓ εx␈↓ While␈α∂we␈α∂expect␈α∂that␈α∂the␈α∂≡rst␈α⊂users␈α∂of
␈↓ ↓H␈↓try␈αto␈αconnect␈αto␈αit,␈αand␈αin␈αsome␈αcases␈αthis␈αhas ␈↓ εx␈↓Dialnet␈α∀will␈α∪be␈α∀regular␈α∪computer␈α∀users,␈α∪the
␈↓ ↓H␈↓been␈α"possible,␈α"but␈α"in␈α"other␈α"cases␈α!the ␈↓ εx␈↓corresponding␈α⊃ARPAnet␈α⊃facilities␈α⊃have␈α⊃been
␈↓ ↓H␈↓institutional␈α
and␈α≡nancial␈α
obstacles␈α
have␈αbeen ␈↓ εx␈↓used␈α"by␈α!non␈α"computer␈α"people,␈α!Dialnet
␈↓ ↓H␈↓insuperable.␈α
The␈α
main␈α
≡nancial␈α
obstacles␈α
are ␈↓ εx␈↓protocols␈α⊂will␈α∂not␈α⊂require␈α∂ability␈α⊂to␈α∂program,
␈↓ ↓H␈↓the␈α⊂need␈α∂for␈α⊂a␈α∂dedicated␈α⊂computer␈α⊂called␈α∂an ␈↓ εx␈↓and␈α∀we␈α∀expect␈α∪increasing␈α∀use␈α∀by␈α∀others␈α∪as
␈↓ ↓H␈↓IMP␈α⊃costing␈α⊃about␈α⊃$80,000␈α⊃at␈α⊃each␈α⊃site␈α⊃and ␈↓ εx␈↓terminals become more widespread.
␈↓ ↓H␈↓the␈α∪need␈α∪for␈α∪dedicated␈α∪communication␈α∪lines
␈↓ ↓H␈↓rented␈α∃by␈α∀DoD␈α∃at␈α∀great␈α∃expense␈α∃from␈α∀the ␈↓ εx␈↓ In␈α_order␈α→to␈α_make␈α_the␈α→picture␈α_more
␈↓ ↓H␈↓telephone␈α∀companies.␈α∀ Other␈α∃networks␈α∀have ␈↓ εx␈↓concrete,␈α∂here␈α∞is␈α∂a␈α∞scenario␈α∂of␈α∞the␈α∂use␈α∂of␈α∞the
␈↓ εx␈↓system.
␈↓ ↓H␈↓αOriginal Dialnet Proposal␈↓ εP␈↓ J3
␈↓ ↓H␈↓α␈↓ β*2. Scenario ␈↓ εx␈↓logged␈α⊂in␈α∂and␈α⊂the␈α∂caller␈α⊂is␈α∂so␈α⊂informed.␈α∂ He
␈↓ εx␈↓then types
␈↓ ↓H␈↓A user named Smith types on his terminal ␈↓ εx␈↓β␈↓ π_locate dave@utex-chem3
␈↓ ↓H␈↓β␈↓ ↓hmail Organik ␈↓ εx␈↓which␈α
obtains␈αthe␈α
following␈α
information␈αfrom
␈↓ ↓H␈↓β␈↓ ↓hDo you have any active work there on ␈↓ εx␈↓the speci≡ed computer:
␈↓ ↓H␈↓β␈↓ ↓hhuman red cell carbonic anhydrase B? ␈↓ εx␈↓β␈↓ π_David Piranha last logged out at
␈↓ εx␈↓β␈↓ π_23:47 on 9 May 1976. Plan: I will
␈↓ ↓H␈↓The␈α_system␈α_looks␈α_up␈α_Organik␈α_in␈α↔Smith's ␈↓ εx␈↓β␈↓ π_be out of touch May 10 through 16.
␈↓ ↓H␈↓correspondent␈α≠≡le␈α≤and␈α≠discovers␈α≤that␈α≠his ␈↓ εx␈↓β␈↓ π_I plan to visit Martin Shumway at
␈↓ ↓H␈↓computer␈αpseudonym␈αis␈α"NAT"␈αat␈α
a␈αcomputer ␈↓ εx␈↓β␈↓ π_the University of Utah on May 17 and
␈↓ ↓H␈↓called␈α∞UTEX-CHEM1␈α∞that␈α∞is␈α∞reached␈α∞at␈α
512 ␈↓ εx␈↓β␈↓ π_should return by May 18. Will check
␈↓ ↓H␈↓471-3221␈α∀via␈α∀a␈α∀1200/150␈α∀baud␈α∀asychronous ␈↓ εx␈↓β␈↓ π_mail from Utah.
␈↓ ↓H␈↓modem.␈α∀ It␈α∀selects␈α∀an␈α∀outgoing␈α∀line␈α∀with␈α∪a
␈↓ ↓H␈↓matching␈α≤modem,␈α≤dials␈α≤the␈α≥number␈α≤and ␈↓ εx␈↓Noting␈α
that␈α
the␈α
current␈α
date␈α
is␈α
May␈α
14,␈αso␈α
that
␈↓ ↓H␈↓attempts␈α→to␈α→transmit␈α→the␈α→message.␈α~ If␈α→the ␈↓ εx␈↓there␈α
is␈α
no␈α
point␈α
in␈α
getting␈α
the␈α
message␈α
there
␈↓ ↓H␈↓transmitting␈α
computer␈α
cannot␈α
elicit␈α
a␈αresponse ␈↓ εx␈↓quickly, Smith types
␈↓ ↓H␈↓from␈αthe␈α
desired␈αrecipient,␈α
it␈αinforms␈α
the␈αuser ␈↓ εx␈↓β␈↓ π_night mail dave@utex-chem3
␈↓ ↓H␈↓that␈α⊃it␈α∩will␈α⊃try␈α∩again␈α⊃later␈α∩and␈α⊃send␈α∩him␈α⊃a ␈↓ εx␈↓β␈↓ π_I am interested in your work on
␈↓ ↓H␈↓message␈αwhen␈α
the␈αtransmission␈α
has␈αsucceeded. ␈↓ εx␈↓β␈↓ π_anhydrase B. If possible, give
␈↓ ↓H␈↓If␈αthe␈αuser's␈αcorrespondent␈α≡le␈αdid␈αnot␈αcontain ␈↓ εx␈↓β␈↓ π_pointers to online documentation,
␈↓ ↓H␈↓the␈α7telepone␈α7number␈α8and␈α7modem ␈↓ εx␈↓β␈↓ π_else give me a call at 415 497-4430
␈↓ ↓H␈↓characteristics,␈α∞the␈α
user␈α∞would␈α
have␈α∞to␈α
supply ␈↓ εx␈↓β␈↓ π_(Stanford) or 415 321-7580 (home).
␈↓ ↓H␈↓them. ␈↓ εx␈↓The␈α"night␈α
mail"␈αcommand␈α
causes␈αthe␈α
message
␈↓ εx␈↓transmission␈α∂to␈α∞be␈α∂deferred␈α∂until␈α∞inexpensive
␈↓ ↓H␈↓The␈α⊂identity␈α⊂and␈α∂location␈α⊂of␈α⊂the␈α⊂sender␈α∂and ␈↓ εx␈↓nighttime telephone rates are in force.
␈↓ ↓H␈↓date␈α
and␈α
time␈αof␈α
the␈α
message␈αare␈α
automatically
␈↓ ↓H␈↓placed␈α∩at␈α⊃the␈α∩front␈α∩of␈α⊃the␈α∩message.␈α∩ At␈α⊃the ␈↓ εx␈↓Additional␈α⊂capabilities␈α⊃of␈α⊂the␈α⊃Dialnet␈α⊂system
␈↓ ↓H␈↓receiving␈αend,␈αif␈αthe␈αaddressee␈αis␈αlogged␈αin␈αon ␈↓ εx␈↓can␈α
be␈α
used␈α
to␈α
follow␈α
up␈α
on␈α
the␈α
above␈α
inquiry,
␈↓ ↓H␈↓the␈αcomputer,␈αhe␈αis␈αimmediately␈αinformed␈αthat ␈↓ εx␈↓as follows.
␈↓ ↓H␈↓mail␈α∃has␈α∃arrived␈α∀and␈α∃from␈α∃whom.␈α∃ If␈α∀not
␈↓ ↓H␈↓logged␈αin,␈αhe␈αwill␈αreceive␈αthe␈αmessage␈αthe␈αnext ␈↓ εx␈↓␈↓π⊗␈↓ The ability to access remote text ≡les will be
␈↓ ↓H␈↓time␈αhe␈αlogs␈αin.␈α In␈αeither␈αcase,␈αhe␈αcan␈αuse␈αthe ␈↓ εx␈↓␈↓ π_provided (with permission of the owners
␈↓ ↓H␈↓same facility to respond: ␈↓ εx␈↓␈↓ π_required, of course). This interactive
␈↓ ↓H␈↓β␈↓ ↓hmail Smith ␈↓ εx␈↓␈↓ π_reading facility will include the addition of
␈↓ ↓H␈↓β␈↓ ↓hDavid Piranha (DAVE@UTEX-CHEM3) has ␈↓ εx␈↓␈↓ π_"footnotes" to various parts of the text.
␈↓ ↓H␈↓β␈↓ ↓ha student working on inhibition by ␈↓ εx␈↓␈↓ π_These footnotes may be declared private
␈↓ ↓H␈↓β␈↓ ↓hanions of anhydrase B. ␈↓ εx␈↓␈↓ π_(i.e. belonging to the reader) or public
␈↓ εx␈↓␈↓ π_(available to the author and possibly
␈↓ ↓H␈↓Following up on this lead, the user types ␈↓ εx␈↓␈↓ π_others).
␈↓ ↓H␈↓β␈↓ ↓hlink dave@utex-chem3
␈↓ εx␈↓␈↓π⊗␈↓ It will be possible to run programs on a
␈↓ ↓H␈↓A␈α∨connection␈α is␈α∨made␈α∨to␈α the␈α∨speci≡ed ␈↓ εx␈↓␈↓ π_remote computer, permitting experiments
␈↓ ↓H␈↓computer␈α⊗and,␈α⊗if␈α↔DAVE␈α⊗is␈α⊗logged␈α↔in,␈α⊗he ␈↓ εx␈↓␈↓ π_with programs developed in other places.
␈↓ ↓H␈↓immediately receives a message saying ␈↓ εx␈↓␈↓ π_This facility will permit the sharing of
␈↓ ↓H␈↓β␈↓ ↓h** Link request from Smith @SU-CHEM7 ␈↓ εx␈↓␈↓ π_unique specialized capabilities over a
␈↓ ↓H␈↓β␈↓ ↓h** ␈↓ εx␈↓␈↓ π_geographically distributed population.
␈↓ ↓H␈↓He␈α⊗could␈α⊗then␈α⊗type␈α⊗"␈↓βlink␈↓"␈α⊗and␈α↔have␈α⊗his
␈↓ ↓H␈↓keyboard␈α_and␈α_display␈α_e≥ectively␈α_linked␈α↔to ␈↓ εx␈↓␈↓π⊗␈↓ File transfers will be permitted, with
␈↓ ↓H␈↓those of the caller, permitting a conversation.␈↓ εx␈↓␈↓ π_suitable error detection and correction
␈↓ εx␈↓␈↓ π_features, to permit sharing of data. The
␈↓ ↓H␈↓Let␈α⊂us␈α⊂suppose,␈α⊂however,␈α⊂that␈α⊂DAVE␈α⊂is␈α⊂not ␈↓ εx␈↓␈↓ π_communication protocol should be able to
␈↓ ↓H␈↓αOriginal Dialnet Proposal␈↓ ε↔Scenario␈↓ G4
␈↓ ↓H␈↓␈↓ ↓hadapt to a wide range of noise conditions ␈↓ εx␈↓one␈αprogram␈αmay␈αsend␈αanother␈αin␈αcases␈αwhere
␈↓ ↓H␈↓␈↓ ↓hon phone lines. ␈↓ εx␈↓the␈αtwo␈αprograms␈αare␈αnot␈αwritten␈αtogether,␈αbut
␈↓ εx␈↓each␈α⊂must␈α⊂know␈α⊂a␈α⊂certain␈α⊂"public"␈α∂language.
␈↓ εx␈↓Thus␈α↔we␈α↔will␈α_attempt␈α↔to␈α↔make␈α_a␈α↔general
␈↓ ↓H␈↓α␈↓ β&3. Protocols ␈↓ εx␈↓format␈α⊂for␈α∂requests,␈α⊂questions,␈α⊂and␈α∂assertions
␈↓ εx␈↓suitable␈α∞for␈α
communication␈α∞between␈α
computer
␈↓ ↓H␈↓In␈α∃order␈α∃to␈α∃make␈α∃these␈α∃facilities␈α∃available, ␈↓ εx␈↓programs.␈α⊃ We␈α⊃will␈α⊃study␈α⊃how␈α⊃to␈α∩make␈α⊃this
␈↓ ↓H␈↓suitable␈α
protocols␈α
must␈α
be␈α
designed,␈α
and␈αin␈α
the ␈↓ εx␈↓mesh␈α⊃with␈α⊃communication␈α⊃between␈α⊃computer
␈↓ ↓H␈↓course␈αof␈αthis,␈αa␈αnumber␈αof␈αtechnical␈αproblems ␈↓ εx␈↓programs and people.
␈↓ ↓H␈↓have␈α_to␈α_be␈α_solved.␈α_ Besides␈α_the␈α_protocols
␈↓ ↓H␈↓themselves,␈α3which␈α3are␈α2communication
␈↓ ↓H␈↓procedures␈αand␈αdata␈αstructures,␈αthere␈αwill␈αbe␈αa ␈↓ εx␈↓α␈↓ λ*4. Research Issues
␈↓ ↓H␈↓recommended␈α⊂set␈α∂of␈α⊂terminal-level␈α∂commands
␈↓ ↓H␈↓with␈α∃syntax␈α⊗prompting␈α∃and␈α⊗standard␈α∃error ␈↓ εx␈↓ There␈αare␈αmany␈αresearch␈αissues,␈αand␈αwe
␈↓ ↓H␈↓messages. ␈↓ εx␈↓don't␈α∂expect␈α∂to␈α∂settle␈α∂all␈α∂of␈α∂them␈α∂in␈α∂the␈α∞time
␈↓ εx␈↓and␈α→with␈α→the␈α→resources␈α→requested␈α~in␈α→this
␈↓ ↓H␈↓We␈α∩believe␈α∩that␈α∩we␈α∩have␈α∩the␈α∩experience␈α∩to ␈↓ εx␈↓proposal.␈α
Since␈α
we␈α
expect␈α
many␈α
of␈α
the␈α
issues
␈↓ ↓H␈↓produce␈α
a␈α∞set␈α
of␈α∞workable␈α
protocols,␈α∞and␈α
that ␈↓ εx␈↓will␈α
be␈α
clari≡ed␈α
by␈α
the␈α∞initial␈α
implementation,
␈↓ ↓H␈↓it␈α∩is␈α∪better␈α∩to␈α∪start␈α∩with␈α∪an␈α∩implementation ␈↓ εx␈↓we␈α∪will␈α∪concentrate␈α∪on␈α∪getting␈α∪a␈α∪reasonable
␈↓ ↓H␈↓than␈α∃to␈α⊗standardize␈α∃something␈α⊗that␈α∃doesn't ␈↓ εx␈↓≡rst implementation into experimental use.
␈↓ ↓H␈↓exist.␈α The␈α
latter␈αprocedure␈α
in␈αrecent␈αyears␈α
has
␈↓ ↓H␈↓led␈α∀to␈α∀gold-plating␈α∀the␈α∀requirements␈α∃to␈α∀the ␈↓ εx␈↓ Here␈α∃are␈α∀some␈α∃of␈α∀the␈α∃issues␈α∃we␈α∀will
␈↓ ↓H␈↓extent that the standard is not implementable.␈↓ εx␈↓study:
␈↓ ↓H␈↓We␈α⊃propose␈α⊂to␈α⊃devise␈α⊂suitable␈α⊃protocols,␈α⊂test ␈↓ εx␈↓1.␈αWhat␈αerror␈αcorrection␈αfacilities␈αare␈αrequired
␈↓ ↓H␈↓them␈αat␈αa␈αfew␈αsites,␈αpublish␈αthem,␈αand␈αattempt ␈↓ εx␈↓to␈α⊂make␈α⊂up␈α⊃for␈α⊂the␈α⊂de≡ciencies␈α⊃of␈α⊂telephone
␈↓ ↓H␈↓to␈α∪convince␈α∪other␈α∪installations␈α∪to␈α∩implement ␈↓ εx␈↓lines?
␈↓ ↓H␈↓them.␈α
Almost␈α
certainly,␈α
initial␈α
experience␈αwill
␈↓ ↓H␈↓produce␈α≤a␈α≤requirement␈α≤for␈α≤changes,␈α≤and ␈↓ εx␈↓2.␈α∂What␈α∂is␈α∂the␈α∂minimal␈α∂necessary␈α∂burden␈α∂on
␈↓ ↓H␈↓standardization␈α
committees␈αwill␈α
be␈αformed␈α
and ␈↓ εx␈↓the␈α∩time-sharing␈α∩computers␈α∩carrying␈α∩out␈α∩the
␈↓ ↓H␈↓set␈α#to␈α#work.␈α$ A␈α#likely␈α#forum␈α$for␈α#a ␈↓ εx␈↓communication?␈α& What␈α&is␈α&the␈α%trade-o≥
␈↓ ↓H␈↓standardization␈α∩e≥ort␈α∩would␈α∩be␈α∩through␈α⊃the ␈↓ εx␈↓between bu≥er size and compute time?
␈↓ ↓H␈↓ACM␈α∀to␈α∀the␈α∀American␈α∃National␈α∀Standards
␈↓ ↓H␈↓Committee. ␈↓ εx␈↓3.␈α
Can␈αdial-up␈α
telephone␈α
communication␈αrates
␈↓ εx␈↓meet␈α∀most␈α∀of␈α∀the␈α∀needs␈α∀for␈α∀communication
␈↓ ↓H␈↓We␈α$propose␈α$to␈α$allow␈α$interaction␈α#with ␈↓ εx␈↓between␈α≥computers␈α≥belonging␈α≡to␈α≥di≥erent
␈↓ ↓H␈↓ARPAnet␈α→sites␈α_via␈α→TIPs␈α_and␈α→propose␈α_to ␈↓ εx␈↓research organizations?
␈↓ ↓H␈↓discuss␈α⊃with␈α∩ARPA␈α⊃and␈α⊃DCA␈α∩whether␈α⊃this
␈↓ ↓H␈↓will be allowed. ␈↓ εx␈↓4.␈α
What␈αis␈α
the␈αbest␈α
way␈α
to␈αhandle␈α
the␈αfact␈α
that
␈↓ εx␈↓di≥erent␈α∞modem␈α∞speeds␈α∞have␈α∞di≥erent␈α
prices?
␈↓ ↓H␈↓The␈α⊃most␈α⊃general␈α⊃use␈α⊃of␈α⊃Dialnet␈α⊃involves␈α⊃a ␈↓ εx␈↓Should␈αone␈αstrive␈αfor␈αa␈αstandard␈αspeed␈αor␈αcan
␈↓ ↓H␈↓program␈α∩in␈α∪one␈α∩computer␈α∩"waking␈α∪up"␈α∩and ␈↓ εx␈↓a wide variety be easily accomodated?
␈↓ ↓H␈↓interacting␈α!with␈α!a␈α!program␈α!in␈α another
␈↓ ↓H␈↓machine.␈α
Dialnet␈α
protocols␈α
will␈αhandle␈α
human ␈↓ εx␈↓5.␈α_How␈α_will␈α_the␈α→improved␈α_communication
␈↓ ↓H␈↓messages␈α∃as␈α∃a␈α∃subcase␈α∃of␈α∃this,␈α⊗taking␈α∃into ␈↓ εx␈↓a≥ect␈α∩research?␈α∩ Since␈α∩changes␈α∩will␈α∩be␈α∩slow,
␈↓ ↓H␈↓account␈αthe␈αfact␈αthat␈αthe␈αsubcase␈αwill␈αhave␈αthe ␈↓ εx␈↓how␈α
can␈α∞we␈α
tell␈α
as␈α∞early␈α
as␈α
possible␈α∞what␈α
the
␈↓ ↓H␈↓most␈α∃application␈α∃for␈α⊗a␈α∃long␈α∃time␈α⊗to␈α∃come. ␈↓ εx␈↓e≥ects will be?
␈↓ ↓H␈↓Messages␈α∩about␈α∪where␈α∩to␈α∩deliver␈α∪a␈α∩message
␈↓ ↓H␈↓sent␈α
by␈α
one␈α
time-sharing␈α
system␈α
to␈α
another␈α
will ␈↓ εx␈↓6.␈α∞What␈α∞style␈α∞of␈α∞interaction␈α∞is␈α∂convenient␈α∞for
␈↓ ↓H␈↓be␈α∂handled␈α∂as␈α∂a␈α∂special␈α∂sort␈α∂of␈α⊂message␈α∂that ␈↓ εx␈↓both␈α↔experienced␈α↔and␈α_inexperienced␈α↔users?
␈↓ ↓H␈↓αOriginal Dialnet Proposal␈↓ ¬hResearch Issues␈↓ I5
␈↓ ↓H␈↓How␈α∩can␈α⊃communication␈α∩programs␈α∩be␈α⊃made
␈↓ ↓H␈↓self-teaching without being cumbersome?
␈↓ ↓H␈↓α␈↓ εP␈↓ J6
␈↓ ↓H␈↓α␈↓ β&Appendix B ␈↓ εx␈↓necessary␈α∂byte␈α∂framing,␈α∞but␈α∂otherwise␈α∂has␈α∞no
␈↓ ↓H␈↓α␈↓ α{Basic line protocol ␈↓ εx␈↓error␈α
correction␈α
facilities.␈α
At␈α
this␈α
writing,␈α
the
␈↓ εx␈↓modem␈α≡type␈α≡used␈α≡are␈α≡VADIC␈α≡VA3405
␈↓ ↓H␈↓↓␈↓ β
by Mark Crispin ␈↓ εx␈↓1200/1200␈α∨baud␈α∨full␈α∨duplex␈α≡asyncronous
␈↓ εx␈↓modems.
␈↓ ↓H␈↓α␈↓ β⊂5. Conventions ␈↓ εx␈↓Next␈α∂is␈α⊂the␈α∂␈↓↓host-host␈↓␈α⊂layer,␈α∂which␈α⊂breaks␈α∂the
␈↓ εx␈↓data␈α∀stream␈α∀into␈α∀chunks,␈α∀or␈α∀␈↓↓packets␈↓.␈α∪ Each
␈↓ ↓H␈↓All␈αnumbers␈αwithout␈αan␈αexplicit␈αbase␈αspeci≡ed ␈↓ εx␈↓packet␈αis␈αchecksummed␈αand␈αsequenced,␈αso␈αthat
␈↓ ↓H␈↓(i.e.,␈αoctal␈αor␈αdecimal)␈αshould␈αbe␈αinterpreted␈αas ␈↓ εx␈↓retransmission␈αcan␈αbe␈αdone␈αon␈αa␈αpacket␈αwhose
␈↓ ↓H␈↓octal␈α∨unless␈α the␈α∨number␈α is␈α∨immediately ␈↓ εx␈↓previous␈α∂transmission␈α⊂was␈α∂corrupted␈α⊂in␈α∂some
␈↓ ↓H␈↓followed by a dot, in which case it is decimal.␈↓ εx␈↓way.␈α⊃ Many␈α⊃systems␈α⊃may␈α⊃want␈α⊃to␈α⊂implement
␈↓ εx␈↓this␈α∃layer␈α∃in␈α∀their␈α∃operating␈α∃system,␈α∃so␈α∀all
␈↓ ↓H␈↓All␈α≡three-digit␈α≡octal␈α≡numbers␈α≡should␈α≥be ␈↓ εx␈↓␈↓↓Dialnet␈↓␈α
user␈α
programs␈α
will␈α
behave␈α
at␈α
this␈α
level
␈↓ ↓H␈↓interpreted␈αas␈αrepresenting␈αan␈α8.-bit␈αbyte,␈αwith ␈↓ εx␈↓in the same manner.
␈↓ ↓H␈↓bits␈αright-justi≡ed␈αwithin␈αthe␈αnumber␈α(ie,␈αfrom
␈↓ ↓H␈↓000␈α∞to␈α
377).␈α∞ Bytes␈α
are␈α∞expressed␈α
in␈α∞the␈α
form ␈↓ εx␈↓Finally␈α∩comes␈α∪the␈α∩user-level␈α∪protocols.␈α∩ This
␈↓ ↓H␈↓as␈α∞returned␈α
by␈α∞the␈α
modem␈α∞(ie,␈α
lsb␈α∞≡rst␈α∞in␈α
the ␈↓ εx␈↓includes␈α⊂≡le␈α∂transfer,␈α⊂mail,␈α⊂linking,␈α∂telnetting,
␈↓ ↓H␈↓data stream). ␈↓ εx␈↓etc.␈α≥ These␈α≤are␈α≥user-level␈α≥programs,␈α≤and
␈↓ εx␈↓␈↓↓Dialnet␈↓␈α≥has␈α≥been␈α≥designed␈α≥with␈α≥enough
␈↓ ↓H␈↓All␈α#six-digit␈α$octal␈α#numbers␈α$should␈α#be ␈↓ εx␈↓∨exibility␈α∂to␈α∂allow␈α∂for␈α∂users␈α∂to␈α∂create␈α∂private
␈↓ ↓H␈↓interpreted␈α∩as␈α∪representing␈α∩a␈α∪16.-bit␈α∩double- ␈↓ εx␈↓protocols of their own.
␈↓ ↓H␈↓byte,␈α≡with␈α≡bits␈α≡right-justi≡ed␈α≡within␈α≥the
␈↓ ↓H␈↓number␈α
(ie,␈α
from␈α
000000␈α
to␈α
177777).␈α
Double- ␈↓ εx␈↓Questions␈αconcerning␈α␈↓↓Dialnet␈↓␈αprotocols␈αshould
␈↓ ↓H␈↓bytes␈α⊂are␈α⊂expressed␈α⊂in␈α⊂the␈α⊂form␈α⊂returned␈α∂by ␈↓ εx␈↓be addressed to:
␈↓ ↓H␈↓the␈αmodem␈α(ie,␈αlow␈α
order␈αbyte␈αand␈αlsb␈α≡rst);␈α
ie,
␈↓ ↓H␈↓010041 is transmitted as 041 020. ␈↓ εx␈↓␈↓↓␈↓ λNMark Crispin
␈↓ εx␈↓↓␈↓ πZArti≡cial Intelligence Laboratory
␈↓ εx␈↓↓␈↓ πtStanford, California 94305
␈↓ ↓H␈↓α␈↓ β16. Preface
␈↓ εx␈↓↓␈↓ λ≠Phone: (415) 491-4712
␈↓ ↓H␈↓␈↓↓␈↓ ↓\"Aren't you glad you use Dialnet? Don't you ␈↓ εx␈↓↓␈↓ λARPAnet: MRC@SU-AI␈↓
␈↓ ↓H␈↓ αx␈↓↓wish everybody did?"␈↓
␈↓ εx␈↓Copies␈αof␈αall␈αcorrespondence␈αshould␈αbe␈αsent␈αto
␈↓ ↓H␈↓␈↓↓Dialnet␈↓␈α8provides␈α8a␈α8capability␈α8for ␈↓ εx␈↓John␈αMcCarthy␈αand␈αLes␈αEarnest␈αat␈αthe␈αabove
␈↓ ↓H␈↓geographically␈α≡separated␈α∨computers,␈α≡called ␈↓ εx␈↓US␈α∀mail␈α∀address␈α∪or␈α∀via␈α∀ARPAnet␈α∀mail␈α∪to
␈↓ ↓H␈↓␈↓↓hosts␈↓,␈α⊂to␈α⊃communicate␈α⊂with␈α⊂each␈α⊃other.␈α⊂ The ␈↓ εx␈↓JMC@SU-AI and LES@SU-AI.
␈↓ ↓H␈↓host␈α≥computers␈α≤typically␈α≥di≥er␈α≥from␈α≤one
␈↓ ↓H␈↓another␈αin␈α
type,␈αspeed,␈αword␈α
length,␈αoperating ␈↓ εx␈↓It␈α
is␈α
the␈αauthor's␈α
intent␈α
that␈α
these␈αprotocols␈α
are
␈↓ ↓H␈↓system,␈α
etc.␈α
Each␈α
computer␈α
utilizes␈α␈↓↓Dialnet␈↓␈α
via ␈↓ εx␈↓both␈α~simple␈α≠in␈α~their␈α≠implementation␈α~and
␈↓ ↓H␈↓ordinary phone lines and special modems. ␈↓ εx␈↓powerful␈α≠in␈α≠their␈α≠operation.␈α≠ Certainly␈α≠a
␈↓ εx␈↓major␈α→design␈α→consideration␈α→was␈α→to␈α→design
␈↓ ↓H␈↓As␈α in␈α many␈α other␈α data␈α∨communication ␈↓ εx␈↓protocols␈α*that␈α*ordinary␈α+mortals␈α*could
␈↓ ↓H␈↓schemes,␈αa␈αlayered␈αapproach␈αhas␈αbeen␈αselected ␈↓ εx␈↓implement on their systems.
␈↓ ↓H␈↓in␈α∂the␈α∂design␈α∂of␈α∂the␈α∂Dialnet␈α∂protocols.␈α∂ Each
␈↓ ↓H␈↓layer␈α⊗sees␈α⊗the␈α⊗immediate␈α⊗lower␈α⊗layer␈α⊗as␈α∃a
␈↓ ↓H␈↓"black␈α
box"␈αand␈α
need␈αnot␈α
be␈α
concerned␈αabout
␈↓ ↓H␈↓its␈α∞internal␈α∞structure.␈α∞ The␈α∞lowest␈α∞layer␈α∞is␈α∞the
␈↓ ↓H␈↓line␈α⊂protocol␈α∂of␈α⊂the␈α∂modems,␈α⊂which␈α∂transfers
␈↓ ↓H␈↓data␈α∃bytes␈α∃over␈α∃the␈α∃phone␈α∃lines␈α⊗and␈α∃does
␈↓ ↓H␈↓αBasic line protocol␈↓ εP␈↓ J7
␈↓ ↓H␈↓α␈↓ αd7. Host-Host Protocol ␈↓ εx␈↓seconds␈α∞or␈α∞so.␈α∂ This␈α∞assures␈α∞the␈α∂receiver␈α∞that
␈↓ εx␈↓the␈αsender␈αis␈αstill␈αup,␈αand␈αserves␈αto␈αinform␈αthe
␈↓ ↓H␈↓All␈αdata␈α
is␈αsent␈αin␈α
the␈αform␈αof␈α
packets,␈αwhich ␈↓ εx␈↓receiver␈α∩if␈α∪any␈α∩of␈α∪its␈α∩pending␈α∪packets␈α∩were
␈↓ ↓H␈↓contain␈α∞a␈α∞␈↓↓packet␈α∞header␈↓,␈α∞optional␈α∞␈↓↓data␈↓,␈α∞and␈α∞a ␈↓ εx␈↓missed.␈α∩ However,␈α⊃if␈α∩the␈α⊃sender␈α∩has␈α⊃packets
␈↓ ↓H␈↓␈↓↓packet␈α∩trailer␈↓.␈α∩ The␈α⊃packet␈α∩header␈α∩serves␈α⊃to ␈↓ εx␈↓waiting␈α"to␈α"be␈α"acknowledged,␈α"it␈α"should
␈↓ ↓H␈↓identify␈α
the␈αtype␈α
of␈αpacket,␈α
the␈αsize␈α
of␈αthe␈α
data ␈↓ εx␈↓retransmit␈α0the␈α0last␈α0packet␈α0on␈α0the
␈↓ ↓H␈↓area␈α⊃and␈α⊃provides␈α⊃information␈α⊃necessary␈α⊂for ␈↓ εx␈↓acknowledgement␈α_pending␈α_list.␈α_ This␈α_is␈α_to
␈↓ ↓H␈↓data␈α∩∨ow␈α∪and␈α∩error␈α∩correction.␈α∪ The␈α∩packet ␈↓ εx␈↓avoid␈α
a␈α∞possible␈α
deadlock␈α
which␈α∞occurs␈α
when
␈↓ ↓H␈↓trailer␈α∪provides␈α∪a␈α∪checksum␈α∪for␈α∀the␈α∪packet. ␈↓ εx␈↓the␈α
last␈α
packet␈α
before␈αthe␈α
sending␈α
goes␈α
idle␈αis
␈↓ ↓H␈↓Packets␈αare␈αframed␈α
at␈αeach␈αend␈α
with␈αa␈α␈↓↓start␈α
of ␈↓ εx␈↓lost.
␈↓ ↓H␈↓↓packet␈↓ and an ␈↓↓end of packet␈↓ marker.
␈↓ εx␈↓A␈α∩properly␈α⊃received␈α∩packet␈α⊃with␈α∩a␈α⊃non-zero
␈↓ ↓H␈↓The␈α∂bytes␈α∂which␈α⊂indicate␈α∂start␈α∂of␈α⊂packet␈α∂are ␈↓ εx␈↓packet␈α
number␈α
must␈α
be␈α
acknowledged␈α
for␈α
the
␈↓ ↓H␈↓called␈α∞SOP,␈α∞and␈α
consist␈α∞of␈α∞ASCII␈α∞DLE␈α
(220) ␈↓ εx␈↓sender␈α⊂to␈α⊂know␈α⊂that␈α⊂the␈α⊂receiver␈α∂successfully
␈↓ ↓H␈↓followed␈α∪by␈α∪STX␈α∪(202);␈α∪similarly,␈α∀the␈α∪bytes ␈↓ εx␈↓received␈α
the␈α
packet␈αand␈α
to␈α
release␈α
that␈αpacket
␈↓ ↓H␈↓which␈α
indicate␈α
end␈αof␈α
packet␈α
are␈α
called␈αEOP, ␈↓ εx␈↓from␈α≤the␈α≤window.␈α≤ Each␈α≤packet␈α≤has␈α≠an
␈↓ ↓H␈↓and␈α∞are␈α
ASCII␈α∞DLE␈α
followed␈α∞by␈α∞ETX␈α
(203). ␈↓ εx␈↓acknowledgement␈α∂byte␈α∂which␈α∂is␈α∂used␈α∂for␈α∞this
␈↓ ↓H␈↓Note␈αthat␈αthe␈α200␈αbit␈αis␈α␈↓↓on␈↓␈αin␈αDLE,␈αSTX,␈αand ␈↓ εx␈↓purpose.␈α⊃ This␈α⊂byte␈α⊃in␈α⊂a␈α⊃packet␈α⊂sent␈α⊃by␈α⊂the
␈↓ ↓H␈↓ETX.␈α If␈αa␈α220␈αbyte␈αis␈αto␈αbe␈αsent,␈αit␈α
is␈αquoted ␈↓ εx␈↓receiver␈α⊃contains␈α⊃the␈α⊃number␈α⊃of␈α∩the␈α⊃highest
␈↓ ↓H␈↓by␈α≥being␈α≥sent␈α≥twice.␈α≥ DLE␈α≥followed␈α≥by ␈↓ εx␈↓successfully␈αreceived␈αpacket.␈α Acknowledging␈αa
␈↓ ↓H␈↓anything␈α⊂other␈α⊂than␈α⊂STX,␈α⊂ETX,␈α⊂or␈α⊃DLE␈α⊂is ␈↓ εx␈↓packet␈α?␈αλimplies␈α?␈α acknowledging␈α?␈αλall
␈↓ ↓H␈↓currently␈α→unde≡ned;␈α→any␈α→such␈α_combination ␈↓ εx␈↓unacknowledged␈α_packets␈α↔with␈α_lower␈α↔packet
␈↓ ↓H␈↓when␈α
received␈α
should␈αbe␈α
discarded.␈α
020,␈α002, ␈↓ εx␈↓numbers,␈α≠therefore␈α≠a␈α≤successfully␈α≠received
␈↓ ↓H␈↓and␈α
003␈α
are␈α
␈↓↓not␈↓␈α
considered␈α
to␈α
be␈α∞DLE,␈α
STX, ␈↓ εx␈↓packet␈α∀can␈α∀merely␈α∀set␈α∀the␈α∀acknowledgement
␈↓ ↓H␈↓and ETX. ␈↓ εx␈↓byte␈α⊃for␈α⊃the␈α⊃next␈α⊃packet␈α⊃to␈α⊃be␈α∩sent␈α⊃without
␈↓ εx␈↓actually forcing a packet to be sent.
␈↓ ↓H␈↓All␈α
packets␈α
have␈α∞a␈α
packet␈α
number,␈α∞which␈α
for
␈↓ ↓H␈↓most␈α∞packets␈α
starts␈α∞at␈α
001␈α∞and␈α∞is␈α
incremented ␈↓ εx␈↓Packets␈α
must␈αbe␈α
received␈αin␈α
sequence,␈αwith␈α
the
␈↓ ↓H␈↓with␈α∩each␈α∩packet␈α∩sent.␈α∩ The␈α∪packet␈α∩number ␈↓ εx␈↓exception␈α∞of␈α∞packets␈α∞with␈α∞packet␈α∞number␈α
000
␈↓ ↓H␈↓wraps␈α⊃around␈α⊃to␈α⊃001␈α⊃from␈α⊃377.␈α⊃ Up␈α∩to␈α⊃two ␈↓ εx␈↓(see␈α
above).␈α
If␈αthe␈α
receiver␈α
receives␈α
a␈αpacket␈α
it
␈↓ ↓H␈↓(the␈α
default␈αwindow␈α
size)␈αpackets␈α
may␈α
be␈αsent ␈↓ εx␈↓has␈αalready␈αacknowledged␈αit␈αshould␈αdiscard␈αit.
␈↓ ↓H␈↓before␈αan␈αacknowledgement␈αis␈αreceived␈α
for␈α(at ␈↓ εx␈↓Packets␈α≥which␈α≤have␈α≥a␈α≥sequence␈α≤number
␈↓ ↓H␈↓least)␈α∀the␈α∃≡rst␈α∀packet.␈α∀ The␈α∃window␈α∀begins ␈↓ εx␈↓higher␈α∂than␈α∂the␈α∂expected␈α∂packet␈α∂and␈α∞packets
␈↓ ↓H␈↓with␈α)the␈α)≡rst␈α)unacknowledged␈α(packet; ␈↓ εx␈↓with␈α∞incorrect␈α∂checksum␈α∞should␈α∂be␈α∞discarded,
␈↓ ↓H␈↓therefore␈α⊗the␈α⊗window␈α⊗size␈α⊗is␈α⊗an␈α∃allocation ␈↓ εx␈↓and␈α
a␈α
NAK␈α∞sent␈α
for␈α
the␈α
expected␈α∞packet.␈α
In
␈↓ ↓H␈↓which␈α⊂is␈α∂used␈α⊂up␈α∂as␈α⊂packets␈α∂are␈α⊂sent␈α⊂and␈α∂is ␈↓ εx␈↓the␈α∃event␈α∀of␈α∃a␈α∀framing␈α∃error,␈α∃the␈α∀receiver
␈↓ ↓H␈↓given back as packets are acknowledged. ␈↓ εx␈↓should␈α⊗discard␈α⊗all␈α⊗input␈α⊗until␈α⊗an␈α⊗SOP␈α⊗is
␈↓ εx␈↓encountered␈α∞in␈α∞the␈α∞input␈α∞stream.␈α∞ If␈α∂a␈α∞packet
␈↓ ↓H␈↓Some␈α⊗packets␈α⊗(ie,␈α⊗NOP,␈α⊗NAK,␈α⊗and␈α⊗ERR) ␈↓ εx␈↓is␈α∀discarded␈α∀for␈α∀being␈α∀out␈α∀of␈α∃sequence,␈α∀its
␈↓ ↓H␈↓have␈α
a␈α
packet␈α
number␈α
of␈α
000.␈α
These␈αpackets ␈↓ εx␈↓acknowledgement␈α∃byte␈α∃should␈α∃still␈α∃be␈α∃used,
␈↓ ↓H␈↓do␈αnot␈αcount␈α
against␈αthe␈αwindow,␈αand␈α
are␈αnot ␈↓ εx␈↓otherwise␈α%an␈α%acknowledgement␈α%may␈α$be
␈↓ ↓H␈↓remembered␈α∂for␈α∞retransmission␈α∂after␈α∂they␈α∞are ␈↓ εx␈↓unnecessarily missed.
␈↓ ↓H␈↓sent.␈α
Therefore␈α
they␈α
are␈α
lost␈α
if␈α
an␈α
error␈α
occurs
␈↓ ↓H␈↓while␈α⊗they␈α⊗are␈α⊗being␈α⊗transmitted.␈α⊗ This␈α⊗is ␈↓ εx␈↓In␈α∨␈↓↓Dialnet␈↓,␈α∨the␈α∨window␈α∨is␈α∨␈↓↓optional␈↓;␈α≡in
␈↓ ↓H␈↓because␈α~what␈α≠information␈α~they␈α≠convey␈α~is ␈↓ εx␈↓particular,␈α∂an␈α∂implementation␈α∂which␈α∂uses␈α∂the
␈↓ ↓H␈↓generally␈α
timing-critical;␈α
if␈α
the␈α
packet␈α
was␈αlost␈↓ εx␈↓window␈α↔should␈α↔not␈α↔get␈α↔upset␈α_because␈α↔the
␈↓ ↓H␈↓nothing would be gained by sending it again.␈↓ εx␈↓foreign␈α↔host␈α↔disobeys␈α↔it␈α↔(it␈α↔can␈α↔of␈α↔course
␈↓ εx␈↓neglect␈α∪to␈α∪acknowledge␈α∪packets␈α∀which␈α∪cause
␈↓ ↓H␈↓If␈α
the␈α
sender␈α∞intends␈α
to␈α
temporarily␈α∞"go␈α
idle", ␈↓ εx␈↓data␈α⊂overruns␈α∂and␈α⊂force␈α∂them␈α⊂to␈α⊂be␈α∂re-sent).
␈↓ ↓H␈↓it␈α∪should␈α∪send␈α∪a␈α∪NOP,␈α∪repeated␈α∪every␈α∩≡ve ␈↓ εx␈↓However,␈α
any␈α∞implementation␈α
which␈α∞is␈α
trying
␈↓ ↓H␈↓αBasic line protocol␈↓ ¬QHost-Host Protocol␈↓ I8
␈↓ ↓H␈↓to␈αbe␈αreasonably␈αe≠cient␈αshould␈αdo␈αsomething ␈↓ εx␈↓The␈αmotivation␈α
for␈αthis␈α
is␈αthat␈α
a␈αpower␈αof␈α
two
␈↓ ↓H␈↓about␈α≤handling␈α≤windows␈α≤and␈α≤telling␈α≤the ␈↓ εx␈↓is␈α↔a␈α⊗convenient␈α↔unit␈α⊗of␈α↔storage␈α↔for␈α⊗many
␈↓ ↓H␈↓foreign␈α∂host␈α∂what␈α∂sort␈α∂of␈α∂window␈α∂size␈α∂it␈α∞can ␈↓ εx␈↓systems.␈α∪ In␈α∪addition,␈α∀many␈α∪implementations
␈↓ ↓H␈↓live with. ␈↓ εx␈↓will␈α≡nd␈αit␈αconvenient␈αto␈αpack␈αfour␈α
data␈αbytes
␈↓ εx␈↓in␈α∂a␈α∂single␈α∂storage␈α∂word.␈α∂ With␈α∂framing␈α∞and
␈↓ ↓H␈↓There␈α→is␈α→no␈α→o≠cial␈α→timeout␈α→for␈α→deciding ␈↓ εx␈↓DLE␈α⊃doubling␈α⊃stripped,␈α⊃this␈α⊃means␈α⊃that␈α⊂the
␈↓ ↓H␈↓whether␈α⊃a␈α⊃host␈α∩is␈α⊃still␈α⊃alive␈α⊃or␈α∩whether␈α⊃the ␈↓ εx␈↓packet␈α↔header␈α↔will␈α↔be␈α↔exactly␈α_one␈α↔storage
␈↓ ↓H␈↓phone␈α≠connection␈α≤is␈α≠poor␈α≠enough␈α≤to␈α≠be ␈↓ εx␈↓word,␈α⊗and␈α⊗the␈α⊗data␈α⊗part␈α⊗will␈α⊗begin␈α⊗on␈α∃a
␈↓ ↓H␈↓unusable.␈α≠ Each␈α≠implementor␈α≤must␈α≠decide ␈↓ εx␈↓storage␈α
word␈αboundary.␈α
In␈αaddition,␈α
the␈αdata
␈↓ ↓H␈↓these for him/herself. ␈↓ εx␈↓part␈α∂of␈α∂a␈α∂maximum-size␈α∂packet␈α∂will␈α∂also␈α∂end
␈↓ εx␈↓on␈α∀a␈α∀storage␈α∃word.␈α∀ This␈α∀is␈α∃signi≡cant␈α∀for
␈↓ ↓H␈↓The␈α∩packet␈α∩checksum␈α⊃algorithm␈α∩used␈α∩is␈α⊃the ␈↓ εx␈↓many␈αsystems␈αin␈αterms␈αof␈αbu≥ering;␈αwhether␈αa
␈↓ ↓H␈↓result␈α∀of␈α∃a␈α∀conversation␈α∀with␈α∃Knuth.␈α∀ The ␈↓ εx␈↓byte-by-byte␈α∩copy␈α∪must␈α∩be␈α∪done␈α∩or␈α∪a␈α∩faster
␈↓ ↓H␈↓checksum␈αis␈α16.␈αbits␈αlong␈αand␈αall␈αof␈αthe␈αpacket ␈↓ εx␈↓word␈α∩transfer.␈α∩ The␈α∩PDP-10␈α∩implementation
␈↓ ↓H␈↓header␈α
variables␈α∞and␈α
the␈α∞entire␈α
data␈α∞area.␈α
It ␈↓ εx␈↓at␈α Stanford␈α exploits␈α this;␈α!an␈α IBM-style
␈↓ ↓H␈↓does␈α⊃NOT␈α⊃include␈α⊃the␈α⊃packet␈α⊃trailer␈α⊃or␈α⊃the ␈↓ εx␈↓machine can derive similar bene≡t.
␈↓ ↓H␈↓SOP/EOP␈α∩packet␈α⊃framing␈α∩codes.␈α∩ Note␈α⊃that
␈↓ ↓H␈↓framing␈α∩checks␈α∩happen␈α∩␈↓↓before␈↓␈α∪the␈α∩checksum ␈↓ εx␈↓In␈α⊂the␈α⊂CLS,␈α∂NAK,␈α⊂EOF,␈α⊂and␈α⊂INT␈α∂op-codes
␈↓ ↓H␈↓check. ␈↓ εx␈↓the␈α⊃data␈α⊃byte␈α∩is␈α⊃meaningless␈α⊃and␈α∩should␈α⊃be
␈↓ εx␈↓ignored,␈α↔however,␈α↔it␈α↔still␈α↔must␈α↔be␈α⊗present.
␈↓ ↓H␈↓The␈αalgorithm␈αis:␈α(all␈αnumbers␈αshould␈αbe␈αread ␈↓ εx␈↓Additionally,␈α∞this␈α
byte␈α∞should␈α
always␈α∞be␈α
zero,
␈↓ ↓H␈↓as octal) ␈↓ εx␈↓to␈α
allow␈α
these␈α
op␈α
codes␈α
to␈α
have␈α∞a␈α
meaningful
␈↓ εx␈↓data part in a future revision of the protocol.
␈↓ ↓H␈↓␈↓ ↓hchecksum := 1;
␈↓ ↓H␈↓␈↓ ↓hwhile newchar do checksum := (checksum * ␈↓ εx␈↓There␈α
are␈α
no␈α
restrictions␈α
on␈α
the␈α
size␈αor␈α
content
␈↓ ↓H␈↓␈↓ αh013215 + newchar) & 177777; ␈↓ εx␈↓of␈α
the␈αdata␈α
part␈αof␈α
a␈αNOP␈α
packet,␈α
except␈αthe
␈↓ εx␈↓packet␈α↔structure␈α↔restriction␈α↔that␈α⊗1≤size≤256.
␈↓ ↓H␈↓In PDP-10 assembly code, this would be: ␈↓ εx␈↓Since,␈α∪however,␈α∪the␈α∪data␈α∪is␈α∪ignored␈α∀by␈α∪the
␈↓ εx␈↓receiver,␈α
a␈α
NOP␈α
packet␈α
would␈α
generally␈α
have
␈↓ ↓H␈↓
; CHKBYT adds a byte to the checksum ␈↓ εx␈↓a␈α⊃one-byte␈α⊃data␈α⊂part,␈α⊃although␈α⊃some␈α⊂systems
␈↓ ↓H␈↓
in SUM. ␈↓ εx␈↓might␈α∞want␈α∞to␈α∞pad␈α∞to␈α∞4␈α∞data␈α∞bytes␈α∞(note␈α
that
␈↓ ↓H␈↓
; At the beginning of each packet SUM ␈↓ εx␈↓this␈α
means␈α
the␈α∞size␈α
≡eld␈α
in␈α
the␈α∞packet␈α
header
␈↓ ↓H␈↓
is ␈↓ εx␈↓is 3!) to keep things on word boundaries.
␈↓ ↓H␈↓
; initialized to 1.
␈↓ ↓H␈↓
; Call: MOVE CHR,<byte from data
␈↓ ↓H␈↓
stream>
␈↓ ↓H␈↓
; PUSHJ P,CHKBYT
␈↓ ↓H␈↓
; <return>
␈↓ ↓H␈↓
CHKBYT: IMULI SUM,013215
␈↓ ↓H␈↓
ADDI SUM,(CHR)
␈↓ ↓H␈↓
ANDI SUM,177777
␈↓ ↓H␈↓
POPJ P,
␈↓ ↓H␈↓There␈α
is␈αalways␈α
at␈αleast␈α
one␈αword␈α
in␈α
the␈αdata
␈↓ ↓H␈↓part␈α∞of␈α∞the␈α∞packet.␈α
The␈α∞data␈α∞part␈α∞size␈α
refers
␈↓ ↓H␈↓to␈αthe␈αnumber␈αof␈α␈↓↓additional␈↓␈αwords␈αin␈αthe␈αdata
␈↓ ↓H␈↓part.␈α⊂ Hence␈α⊂the␈α⊂data␈α⊂part␈α⊂can␈α⊂be␈α⊂␈↓↓from␈α⊂1␈α⊂to
␈↓ ↓H␈↓↓256␈↓␈α∪data␈α∪bytes␈α∪long.␈α∪ This␈α∪means␈α∀that␈α∪the
␈↓ ↓H␈↓"data␈α→size"␈α→≡eld␈α→in␈α→the␈α→packet␈α→header␈α→is
␈↓ ↓H␈↓actually ␈↓↓one less␈↓ than the actual data size.
␈↓ ↓H␈↓αBasic line protocol␈↓ ¬QHost-Host Protocol␈↓ J9
␈↓ ↓H␈↓α␈↓ β∃Packet Format ␈↓ εx␈↓001 RPC (Request Process Connection)
␈↓ ↓H␈↓
␈↓ ↓X____________________________________ ␈↓ εx␈↓␈↓ π_(optional) 8 bytes of process ID
␈↓ ↓H␈↓
␈↓ ↓X| | ␈↓ εx␈↓␈↓ π_(optional) 1 byte of initial window size
␈↓ ↓H␈↓
␈↓ ↓X| 2 bytes SOP framing mark |
␈↓ ↓H␈↓
␈↓ ↓X| | ␈↓ εx␈↓This␈α⊂is␈α⊃the␈α⊂establish␈α⊃connection␈α⊂op␈α⊃code.␈α⊂ It
␈↓ ↓H␈↓
␈↓ ↓X|==================================| ␈↓ εx␈↓serves␈α∞a␈α∞dual␈α∞purpose;␈α∞to␈α∞request␈α
establishing
␈↓ ↓H␈↓
␈↓ ↓X| Channel | Op Code | ␈↓ εx␈↓a␈α∪connection,␈α∀and␈α∪to␈α∪con≡rm␈α∀establishing␈α∪a
␈↓ ↓H␈↓
␈↓ ↓X| (4 bits) | (4 bits) | ␈↓ εx␈↓connection.␈α∪ In␈α∪the␈α∪≡rst␈α∪case,␈α∪the␈α∪data␈α∪area
␈↓ ↓H␈↓
␈↓ ↓X|________________|_________________| ␈↓ εx␈↓contains␈α∃an␈α∃8.-byte␈α∀␈↓↓process␈α∃ID␈↓,␈α∃which␈α∃is␈α∀a
␈↓ ↓H␈↓
␈↓ ↓X| | ␈↓ εx␈↓handle␈α
to␈αthe␈α
remote␈αprocess␈α
the␈αsender␈α
wishes
␈↓ ↓H␈↓
␈↓ ↓X| 1 byte Packet number | ␈↓ εx␈↓to␈αconnect␈αto.␈α In␈αthe␈αlatter␈αcase,␈αno␈αprocess␈αID
␈↓ ↓H␈↓
␈↓ ↓X|__________________________________| ␈↓ εx␈↓is␈α∃speci≡ed.␈α∀ A␈α∃single␈α∀byte␈α∃may␈α∃follow␈α∀the
␈↓ ↓H␈↓
␈↓ ↓X| | ␈↓ εx␈↓process ID to specify an initial window size.
␈↓ ↓H␈↓
␈↓ ↓X| 1 byte Acknowledgement |
␈↓ ↓H␈↓
␈↓ ↓X|__________________________________| ␈↓ εx␈↓002 CLS (Close Connection)
␈↓ ↓H␈↓
␈↓ ↓X| |
␈↓ ↓H␈↓
␈↓ ↓X| 1 byte Data size | ␈↓ εx␈↓This␈α∂is␈α∂the␈α∂terminate␈α∂connection␈α∂op␈α∂code.␈α∂ It
␈↓ ↓H␈↓
␈↓ ↓X|==================================| ␈↓ εx␈↓may␈αeither␈αterminate␈αan␈αexisting␈αconnection␈α
or
␈↓ ↓H␈↓
␈↓ ↓X| | ␈↓ εx␈↓abort a request for one.
␈↓ ↓H␈↓
␈↓ ↓X| 1 byte Data word |
␈↓ ↓H␈↓
␈↓ ↓X|__________________________________| ␈↓ εx␈↓003 WIN (set WINdow size)
␈↓ ↓H␈↓
␈↓ ↓X| | ␈↓ εx␈↓␈↓ π_1 byte of window size
␈↓ ↓H␈↓
␈↓ ↓X| (specified |
␈↓ ↓H␈↓
␈↓ ↓X| by data Additional data bytes | ␈↓ εx␈↓This␈αop␈αcode␈αsets␈αthe␈αinput␈αwindow␈αsize;␈αie,␈αit
␈↓ ↓H␈↓
␈↓ ↓X| size byte) | ␈↓ εx␈↓suggests␈α∂to␈α∂the␈α∂receiver␈α∂how␈α∂many␈α⊂packets␈α∂it
␈↓ ↓H␈↓
␈↓ ↓X| | ␈↓ εx␈↓may␈α2send␈α2before␈α2waiting␈α3for␈α2an
␈↓ ↓H␈↓
␈↓ ↓X|==================================| ␈↓ εx␈↓acknowledgement.␈α, The␈α,minimum␈α+(and
␈↓ ↓H␈↓
␈↓ ↓X| | ␈↓ εx␈↓default)␈α≤window␈α≠size␈α≤is␈α≠2␈α≤packets.␈α≠ The
␈↓ ↓H␈↓
␈↓ ↓X| 2 bytes Packet checksum | ␈↓ εx␈↓absolute␈α⊂maximum␈α⊂window␈α⊂is␈α⊃127.;␈α⊂however,
␈↓ ↓H␈↓
␈↓ ↓X| | ␈↓ εx␈↓many␈α_systems␈α_may␈α_want␈α_to␈α_set␈α_a␈α↔smaller
␈↓ ↓H␈↓
␈↓ ↓X|==================================| ␈↓ εx␈↓maximum␈α∩window.␈α⊃ At␈α∩Stanford,␈α∩the␈α⊃system
␈↓ ↓H␈↓
␈↓ ↓X| | ␈↓ εx␈↓maximum is 16. packets.
␈↓ ↓H␈↓
␈↓ ↓X| 2 bytes EOP framing mark |
␈↓ ↓H␈↓
␈↓ ↓X| | ␈↓ εx␈↓004 MSG (MeSsaGe)
␈↓ ↓H␈↓
␈↓ ↓X|__________________________________| ␈↓ εx␈↓␈↓ π_0 to 256. bytes of data
␈↓ εx␈↓This␈α⊂is␈α⊂the␈α⊂data␈α⊂transmission␈α⊂op␈α⊂code.␈α⊂ The
␈↓ ↓H␈↓α␈↓ αqHost-Host Op-Codes ␈↓ εx␈↓contents␈α∩of␈α∩the␈α∩data␈α⊃part␈α∩are␈α∩passed␈α∩to␈α⊃the
␈↓ εx␈↓tertiary process.
␈↓ ↓H␈↓In␈α∩the␈α⊃descriptions␈α∩below,␈α∩certain␈α⊃arguments
␈↓ ↓H␈↓are␈α∂passed␈α∂along␈α∞with␈α∂the␈α∂commands.␈α∞ These ␈↓ εx␈↓005 NAK (Negative AcKnowledgment)
␈↓ ↓H␈↓arguments␈α∩are␈α∪listed␈α∩in␈α∪the␈α∩order␈α∪in␈α∩which
␈↓ ↓H␈↓they␈α⊂occur,␈α∂along␈α⊂with␈α∂their␈α⊂byte␈α⊂size.␈α∂ They ␈↓ εx␈↓This␈α≠op␈α≠code␈α≠requests␈α≠that␈α≤the␈α≠receiver
␈↓ ↓H␈↓all occur in the DATA ≡eld of the packet. ␈↓ εx␈↓retransmit␈α∞all␈α∞unacknowledged␈α∞packets␈α∂that␈α∞it
␈↓ εx␈↓sent.
␈↓ ↓H␈↓000 NOP (No-op)
␈↓ εx␈↓006 EOF (End Of File)
␈↓ ↓H␈↓This␈αop␈αcode␈αis␈αa␈αno-operation␈αand␈αshould␈αbe
␈↓ ↓H␈↓ignored␈αby␈αthe␈αreceiver␈αexcept␈αthat␈αthe␈αpacket ␈↓ εx␈↓This␈α
op␈α
code␈α∞is␈α
used␈α
to␈α∞raise␈α
an␈α
"end␈α∞of␈α
≡le"
␈↓ ↓H␈↓still␈α∪has␈α∩to␈α∪be␈α∩acknowledged.␈α∪ It␈α∩is␈α∪used␈α∩to ␈↓ εx␈↓condition␈α∂on␈α∂a␈α∂particular␈α∂channel␈α∂to␈α∂indicate
␈↓ ↓H␈↓acknowledge␈α
a␈α
packet␈α
without␈α
doing␈αanything ␈↓ εx␈↓the end of a data stream.
␈↓ ↓H␈↓else.
␈↓ ↓H␈↓αBasic line protocol␈↓ ¬QHost-Host Protocol␈↓ >10
␈↓ ↓H␈↓007 INT (Interrupt) ␈↓ εx␈↓Otherwise,␈α∨S␈α accepts␈α∨the␈α connection␈α∨by
␈↓ εx␈↓sending␈α⊗an␈α⊗RPC␈α⊗back␈α⊗to␈α⊗U,␈α⊗with␈α↔a␈α⊗null
␈↓ ↓H␈↓This␈α⊂op␈α⊂code␈α⊂is␈α⊂used␈α⊂to␈α⊂raise␈α⊂an␈α∂"interrupt" ␈↓ εx␈↓process␈α∀ID.␈α∀ The␈α∀connection␈α∀has␈α∀now␈α∀been
␈↓ ↓H␈↓condition␈α≠on␈α~a␈α≠particular␈α~channel.␈α≠ It␈α~is ␈↓ εx␈↓established,␈α⊂and␈α⊃the␈α⊂process␈α⊃ID␈α⊂is␈α⊃no␈α⊂longer
␈↓ ↓H␈↓intended␈α⊂that␈α⊂a␈α⊂user␈α⊂process␈α⊂be␈α⊂informed␈α⊂of ␈↓ εx␈↓used␈α_by␈α→the␈α_host-host␈α_protocol.␈α→ The␈α_two
␈↓ ↓H␈↓the␈α⊂interrupt␈α⊃twice;␈α⊂when␈α⊃it␈α⊂is␈α⊃received,␈α⊂and ␈↓ εx␈↓processes␈α∂may␈α∂now␈α∞pass␈α∂data␈α∂back␈α∂and␈α∞forth
␈↓ ↓H␈↓when␈αit␈αoccurs␈αin␈αthe␈αdata␈αstream␈α(the␈αlatter␈αis ␈↓ εx␈↓using the various Host-Host op codes.
␈↓ ↓H␈↓to␈α indicate␈α the␈α end␈α of␈α!the␈α "interrupt"
␈↓ ↓H␈↓condition). ␈↓ εx␈↓When␈αa␈αhost␈αwishes␈αto␈αterminate␈αa␈α
connection,
␈↓ εx␈↓it␈α∞sends␈α∂a␈α∞CLS.␈α∞ Once␈α∂a␈α∞CLS␈α∞has␈α∂been␈α∞sent,
␈↓ ↓H␈↓010 ERR (Error) ␈↓ εx␈↓no␈αfurther␈α
MSG's␈αmay␈αbe␈α
sent␈αand␈α
any␈αMSG
␈↓ ↓H␈↓␈↓ ↓h0 to 256. bytes of ASCII error text ␈↓ εx␈↓sent␈α∂should␈α⊂be␈α∂replied␈α∂to␈α⊂with␈α∂an␈α⊂ERR.␈α∂ Of
␈↓ εx␈↓course,␈α⊂a␈α⊂new␈α⊂connection␈α⊂may␈α⊂be␈α⊂established
␈↓ ↓H␈↓This␈α
op␈α
code␈α
is␈α
used␈α
to␈α
send␈α
a␈α
protocol␈αerror ␈↓ εx␈↓with␈α∪RPC.␈α∪ Breaking␈α∪the␈α∀phone␈α∪connection
␈↓ ↓H␈↓warning.␈α
It␈αis␈α
intended␈α
that␈αa␈α
receiver␈αof␈α
such ␈↓ εx␈↓implies terminating the connection.
␈↓ ↓H␈↓a␈αwarning␈α
output␈αthe␈αcontents␈α
of␈αthe␈αdata␈α
part
␈↓ ↓H␈↓of␈α⊃the␈α⊃message␈α⊃(which␈α⊃should␈α⊃be␈α∩an␈α⊃ASCII ␈↓ εx␈↓When␈α#a␈α#connection␈α#is␈α#terminated,␈α"the
␈↓ ↓H␈↓string)␈α↔on␈α↔a␈α↔logging␈α↔terminal␈α↔so␈α↔that␈α↔the ␈↓ εx␈↓recepient␈α⊂of␈α⊂the␈α⊂CLS␈α∂should␈α⊂send␈α⊂a␈α⊂CLS␈α∂to
␈↓ ↓H␈↓support␈α⊂sta≥␈α⊂can␈α⊂determine␈α⊂the␈α⊂cause␈α⊂of␈α⊂the ␈↓ εx␈↓con≡rm terminating the process.
␈↓ ↓H␈↓problem␈α∂and␈α∂take␈α∂corrective␈α∂action.␈α∂ This␈α∂op
␈↓ ↓H␈↓code␈αshould␈αbe␈αused␈αjudiciously,␈αsince␈αneedless
␈↓ ↓H␈↓usage would only defeat its purpose. ␈↓ εx␈↓α␈↓ π,8. Introduction to Tertiary Protocols
␈↓ ↓H␈↓α␈↓ β%Connections␈↓ ␈↓ εx␈↓All␈α
protocol␈α
communication␈α
in␈α
the␈α
higher␈α
level
␈↓ εx␈↓Dialnet␈α⊂protocols␈α⊂(e.g.␈α⊂ MAIL,␈α⊂File␈α⊂Transfer)
␈↓ ↓H␈↓In␈α
the␈α
discussion␈α
below,␈α
U␈α
refers␈α
to␈α
the␈α
process ␈↓ εx␈↓uses␈αa␈αlist␈αformat␈αfor␈αmessages.␈α Each␈αmessage
␈↓ ↓H␈↓which␈α∃initially␈α⊗provoked␈α∃the␈α⊗connection␈α∃or ␈↓ εx␈↓therefore has the form
␈↓ ↓H␈↓␈↓↓user␈↓,␈α∃S␈α⊗refers␈α∃to␈α⊗the␈α∃the␈α⊗process␈α∃passively
␈↓ ↓H␈↓waiting for a connection or ␈↓↓server␈↓. ␈↓ εx␈↓(<identi≡er> <item> ... <item>)
␈↓ ↓H␈↓Channel 0 is to be used for ICP. ␈↓ εx␈↓where␈α#the␈α#items␈α#themselves␈α#are␈α"either
␈↓ εx␈↓identi≡ers␈α∩or␈α∩have␈α∩a␈α∩similar␈α∩structure.␈α∩ The
␈↓ ↓H␈↓Following␈α≥the␈α≥establishment␈α≥of␈α≥a␈α≤dialup ␈↓ εx␈↓object of this scheme is to ensure ∨exibility.
␈↓ ↓H␈↓connection,␈α∞U␈α∞should␈α∞send␈α
a␈α∞few␈α∞NOP's␈α∞to␈α
S
␈↓ ↓H␈↓to␈αavoid␈αpossible␈α
problems␈αwith␈αdropped␈α
bytes ␈↓ εx␈↓Suppose,␈αfor␈αexample,␈αthat␈αone␈αof␈αthe␈αitems␈αin
␈↓ ↓H␈↓while connecting. ␈↓ εx␈↓a␈α∪protocol␈α∪message␈α∪designates␈α∪a␈α∀user␈α∪name.
␈↓ εx␈↓Initial␈α∩designs␈α∩of␈α∪Dialnet␈α∩may␈α∩allow␈α∪only␈α∩a
␈↓ ↓H␈↓U␈αmust␈αknow␈αthe␈αprocess␈αID␈αof␈αthe␈αS␈αit␈αwants ␈↓ εx␈↓character␈α∨string␈α∨without␈α∨parentheses␈α∨like
␈↓ ↓H␈↓to␈α
connect␈α
to.␈α
As␈αfar␈α
as␈α
Dialnet␈α
is␈αconcerned, ␈↓ εx␈↓SMITH␈α↔to␈α⊗designate␈α↔the␈α⊗user.␈α↔ Later␈α⊗this
␈↓ ↓H␈↓process␈α≠ID's␈α≠are␈α≠arbitrary␈α≤ASCII␈α≠strings. ␈↓ εx␈↓might␈α∂be␈α⊂elaborated␈α∂to␈α⊂also␈α∂allow␈α⊂a␈α∂complex
␈↓ ↓H␈↓However,␈α∩conventions␈α⊃have␈α∩been␈α⊃established ␈↓ εx␈↓designator␈α_like␈α_(SUCCESSOR␈α_SMITH)␈α↔to
␈↓ ↓H␈↓as noted elsewhere. ␈↓ εx␈↓designate␈α the␈α person␈α who␈α has␈α∨replaced
␈↓ εx␈↓SMITH in this job assignment.
␈↓ ↓H␈↓U␈α∞sends␈α∞an␈α∞RPC␈α∞with␈α
the␈α∞process␈α∞ID␈α∞at␈α∞S␈α
it
␈↓ ↓H␈↓wants␈αto␈αconnect␈αto.␈α S␈αmay␈αhave␈αbeen␈αwaiting ␈↓ εx␈↓There␈αis␈αno␈αpresent␈αintention␈αthat␈α
the␈αDialnet
␈↓ ↓H␈↓for␈α
a␈α
connection,␈α
or␈α
perhaps␈α
was␈α
created␈α
by␈α
S's ␈↓ εx␈↓protocols␈α∞will␈α∞be␈α∞subject␈α∞to␈α∞rapid␈α
elaboration.
␈↓ ↓H␈↓host␈α⊂as␈α⊂a␈α⊂result␈α⊃of␈α⊂the␈α⊂RPC.␈α⊂ If␈α⊂S␈α⊃does␈α⊂not ␈↓ εx␈↓The␈α∩present␈α∩object␈α∩is␈α∩merely␈α∩to␈α∩build␈α⊃these
␈↓ ↓H␈↓exist␈α∀or␈α∪S's␈α∀host␈α∪is␈α∀unable␈α∪or␈α∀unwilling␈α∪to ␈↓ εx␈↓protocols␈α⊃so␈α⊂that␈α⊃they␈α⊂will␈α⊃not␈α⊂be␈α⊃subject␈α⊂to
␈↓ ↓H␈↓make␈α⊂the␈α⊂connection␈α⊂at␈α⊂the␈α⊂present␈α⊃time,␈α⊂S's ␈↓ εx␈↓blind␈αalleys.␈α
Therefore,␈αthere␈α
are␈αno␈α≡xed␈α
size
␈↓ ↓H␈↓host␈α→should␈α→return␈α→a␈α→CLS␈α→to␈α→refuse␈α_the ␈↓ εx␈↓≡elds,␈αand␈α
item␈αthat␈α
is␈αinitially␈α
represented␈αby
␈↓ ↓H␈↓connection.
␈↓ ↓H␈↓αBasic line protocol␈↓ ∧iIntroduction to Tertiary Protocols␈↓ @11
␈↓ ↓H␈↓an␈α
atomic␈α
name␈αmay␈α
later␈α
be␈α
replaced␈αby␈α
some
␈↓ ↓H␈↓kind␈α∪of␈α∩expression,␈α∪and␈α∩new␈α∪terms␈α∪may␈α∩be
␈↓ ↓H␈↓adjoined␈αto␈αlists.␈α Thus␈αif␈αan␈αitem␈αis␈αpresently
␈↓ ↓H␈↓denoted␈α∩by␈α∪a␈α∩three␈α∪term␈α∩list,␈α∪an␈α∩elaborated
␈↓ ↓H␈↓protocol␈αmay␈αlater␈αcall␈αfor␈αa␈αfour␈αitem␈αlist,␈αbut
␈↓ ↓H␈↓if␈α
the␈α∞same␈α
initial␈α
identi≡er␈α∞is␈α
used,␈α∞it␈α
should
␈↓ ↓H␈↓still␈α∂be␈α⊂possible␈α∂for␈α∂a␈α⊂recipient␈α∂to␈α⊂ignore␈α∂the
␈↓ ↓H␈↓fourth item and still use the message.
␈↓ ↓H␈↓We␈α∩believe␈α∩that␈α∩these␈α∩conventions,␈α∩at␈α⊃slight
␈↓ ↓H␈↓cost␈α
in␈α
initial␈α
implementation,␈α
will␈αmake␈α
future
␈↓ ↓H␈↓improvements easy should they be required.
␈↓ ↓H␈↓α␈↓ εP␈↓ :12
␈↓ ↓H␈↓α␈↓ β%Appendix C ␈↓ εx␈↓Under␈α
request␈αfrom␈α
the␈αuser␈α
process,␈α
the␈αuser
␈↓ ↓H␈↓α␈↓ αiFile transfer protocol ␈↓ εx␈↓program␈α↔establishes␈α↔a␈α↔connection␈α↔with␈α↔the
␈↓ εx␈↓desired␈α∀server.␈α∀ Channel␈α∪0␈α∀is␈α∀employed␈α∪for
␈↓ ↓H␈↓↓␈↓ β by Ignacio Zabala ␈↓ εx␈↓exchange␈α∩of␈α∪commands␈α∩and␈α∪replies␈α∩between
␈↓ εx␈↓the␈α~user␈α~and␈α~server␈α~programs.␈α≠ When␈α~a
␈↓ ↓H␈↓The␈α∀␈↓↓File␈α∀Transfer␈α∀Protocol␈↓␈α∀(FTP)␈α∪provides ␈↓ εx␈↓connection␈α⊃is␈α⊃established,␈α⊃the␈α⊃server␈α∩sends␈α⊃a
␈↓ ↓H␈↓Dialnet␈α∃hosts␈α∃with␈α∃a␈α∃set␈α∃of␈α∃commands␈α∀for ␈↓ εx␈↓"reply"␈αconsisting␈αof␈α
a␈αgreeting␈αmessage␈α
(which
␈↓ ↓H␈↓transmission of ≡les among them. ␈↓ εx␈↓can␈α∩contain␈α∩anything,␈α∩such␈α∩as␈α∪system␈α∩name,
␈↓ εx␈↓etc.).
␈↓ ↓H␈↓Because␈α⊃we␈α⊃count␈α⊃on␈α⊃quite␈α∩di≥erent␈α⊃systems
␈↓ ↓H␈↓using␈α∪Dialnet,␈α∪it␈α∪is␈α∪necessary␈α∪to␈α∪establish␈α∪a ␈↓ εx␈↓At␈α⊗this␈α⊗point␈α⊗both␈α⊗sites␈α⊗must␈α↔reach␈α⊗some
␈↓ ↓H␈↓small␈α∩set␈α∪of␈α∩essential␈α∩commands␈α∪and␈α∩replies ␈↓ εx␈↓agreement␈αabout␈αthe␈αcharacteristics␈αof␈αthe␈α∨ow
␈↓ ↓H␈↓that␈α
are␈α
implemented␈α∞by␈α
all␈α
of␈α
them␈α∞in␈α
order ␈↓ εx␈↓of␈α∞data␈α∞between␈α∂them␈α∞so␈α∞that␈α∂the␈α∞transferred
␈↓ ↓H␈↓to␈α∂make␈α⊂possible␈α∂the␈α⊂communication␈α∂between ␈↓ εx␈↓data␈α⊂is␈α⊂interpreted␈α⊂in␈α⊂the␈α⊂same␈α⊂way␈α⊃at␈α⊂both
␈↓ ↓H␈↓any␈α⊗two␈α⊗sites.␈α⊗ On␈α⊗top␈α⊗of␈α⊗this,␈α⊗additional ␈↓ εx␈↓ends␈α
of␈αthe␈α
connection.␈α
This␈αis␈α
the␈αpurpose␈α
of
␈↓ ↓H␈↓commands␈α↔are␈α_de≡ned␈α↔that␈α_enchance␈α↔data ␈↓ εx␈↓the␈αDATA␈αcommand.␈α The␈αagreement␈αmay␈αbe
␈↓ ↓H␈↓transfer between two similar hosts. ␈↓ εx␈↓renegotiated␈α∪at␈α∪any␈α∪time␈α∪in␈α∪which␈α∀no␈α∪data
␈↓ εx␈↓transmission␈α∀is␈α∀in␈α∀progress.␈α∀ The␈α∀user␈α∀may
␈↓ ↓H␈↓FTP␈α~commands␈α~consist␈α~of␈α~standard␈α~8-bit ␈↓ εx␈↓then␈α
issue␈α∞service␈α
requests␈α
thru␈α∞the␈α
command
␈↓ ↓H␈↓ASCII␈α⊂strings.␈α⊂ Any␈α⊂number␈α⊂appearing␈α⊃in␈α⊂a ␈↓ εx␈↓channel.
␈↓ ↓H␈↓command will always be decimal.
␈↓ ↓H␈↓The␈α⊂interactions␈α⊂between␈α⊂the␈α⊃various␈α⊂parties
␈↓ ↓H␈↓in␈α
an␈α∞FTP␈α
transaction␈α∞may␈α
be␈α∞best␈α
described
␈↓ ↓H␈↓by the following diagram:
␈↓ β(␈↓
________ ________
␈↓ β(␈↓
| | Data | |
␈↓ β(␈↓
----->|(Output)|>---------->|(Input) |>--
␈↓ β(␈↓
! | | Channel(1) | | !
␈↓ β(␈↓
! | | | | !
␈↓ β(␈↓
! | | | | !
␈↓ β(␈↓
! | | Command | | ! _____
␈↓ β(␈↓
! | Server |<==========>| User |<======>| User|
␈↓ β(␈↓
! | Process| Channel(0) | Process| ! |_____|
␈↓ β(␈↓
∧ | | | | !
␈↓ β(␈↓
______ | | | | ! ________
␈↓ β(␈↓
| File | | | Data | | --->| File |
␈↓ β(␈↓
|System|<-<|(Input) |<----------<|(Output)|<----<| System |
␈↓ β(␈↓
|______| |________| Channel(2) |________| |________|
␈↓ ↓H␈↓αFile transfer protocol␈↓ εP␈↓ >13
␈↓ ↓H␈↓Data␈α↔is␈α↔transferred␈α↔on␈α↔the␈α_data␈α↔channels. ␈↓ εx␈↓The replies are:
␈↓ ↓H␈↓When␈αthe␈αserver␈αreceives␈αa␈αrequest␈αto␈αretrieve
␈↓ ↓H␈↓a␈α→≡le,␈α→it␈α_tries␈α→to␈α→obtain␈α_the␈α→≡le␈α→and,␈α_if ␈↓ εx␈↓␈↓ π_␈↓↓(OK (<optional-text>))␈↓
␈↓ ↓H␈↓everything␈αgoes␈αright,␈αit␈αsends␈αa␈αpositive␈αreply
␈↓ ↓H␈↓on␈α∂channel␈α∂0␈α∂and␈α∞starts␈α∂sending␈α∂the␈α∂data␈α∞on ␈↓ εx␈↓␈↓ π_The␈α∞command␈α∞has␈α
been␈α∞accepted␈α∞as␈α
issued
␈↓ ↓H␈↓channel␈α1.␈α Upon␈αreceipt␈αof␈αthe␈αreply,␈αthe␈αuser ␈↓ εx␈↓␈↓ πxand␈α∞will␈α∞cause␈α
the␈α∞desired␈α∞e≥ect.␈α
If
␈↓ ↓H␈↓will␈α∂start␈α∂taking␈α∂packets␈α∂from␈α∂channel␈α⊂1␈α∂and ␈↓ εx␈↓␈↓ πxthe␈α∀command␈α∪requires␈α∀two␈α∪replies,
␈↓ ↓H␈↓will␈αeventually␈αstore␈αthe␈αdata␈αin␈αits␈α≡le␈αsystem. ␈↓ εx␈↓␈↓ πxthis is the primary positive reply.
␈↓ ↓H␈↓When␈α~a␈α≠store␈α~or␈α~append␈α≠operations␈α~are
␈↓ ↓H␈↓requested␈α⊃it␈α⊃is␈α⊃the␈α⊃user␈α⊃program␈α⊃which␈α⊃gets ␈↓ εx␈↓␈↓ π_␈↓↓(DONE (<optional-text>))␈↓
␈↓ ↓H␈↓the␈α≡le␈αand␈αsends␈αit␈αto␈αthe␈αserver␈αthru␈α
channel
␈↓ ↓H␈↓2.␈α
After␈αthe␈α
request,␈αthe␈α
server␈αis␈α
listening␈αto ␈↓ εx␈↓␈↓ π_This␈α⊗is␈α⊗the␈α↔secondary␈α⊗reply␈α⊗for␈α↔a␈α⊗data
␈↓ ↓H␈↓this␈α∂channel␈α⊂and␈α∂when␈α⊂the␈α∂packets␈α⊂arrive,␈α∂it ␈↓ εx␈↓␈↓ πxtransfer␈α→command␈α→whose␈α→primary
␈↓ ↓H␈↓will store the data in its ≡le system. ␈↓ εx␈↓␈↓ πxreply␈α∞was␈α∞positive.␈α∞ It␈α∞indicates␈α∞that
␈↓ εx␈↓␈↓ πxthe data transfer is ≡nished.
␈↓ ↓H␈↓Data␈αtransmission␈αis␈αterminated␈αby␈αany␈α
of␈αthe
␈↓ ↓H␈↓following reasons: ␈↓ εx␈↓␈↓ π_␈↓↓(BUSY (<optional-text>))␈↓
␈↓ ↓H␈↓-␈α∪The␈α∪receiver␈α∪gets␈α∪an␈α∪end␈α∪of␈α∪≡le␈α∀on␈α∪that ␈↓ εx␈↓␈↓ π_The␈αserver␈αcannot␈αattend␈αthe␈αrequest␈αbut␈αif
␈↓ ↓H␈↓␈↓ ↓hchannel.␈α
This␈α
is␈α
the␈α
normal␈αtermination␈α
for ␈↓ εx␈↓␈↓ πxyou␈α∪keep␈α∀trying␈α∪it␈α∀may␈α∪eventually
␈↓ ↓H␈↓␈↓ ↓ha successful data transfer. ␈↓ εx␈↓␈↓ πxgive you the service.
␈↓ ↓H␈↓-␈α⊃An␈α⊂interrupt␈α⊃has␈α⊃been␈α⊂issued␈α⊃on␈α⊃the␈α⊂data ␈↓ εx␈↓␈↓ π_␈↓↓(FAILED (<optional-text>))␈↓
␈↓ ↓H␈↓␈↓ ↓hchannel.␈α⊃ Any␈α⊃data␈α⊃previously␈α⊃received␈α⊂in
␈↓ ↓H␈↓␈↓ ↓hthat transmission is discarded. ␈↓ εx␈↓␈↓ π_You␈α∩are␈α∩losing␈α∩with␈α∩this␈α∪command.␈α∩ The
␈↓ εx␈↓␈↓ πxargument will tell the reason.
␈↓ ↓H␈↓-␈α~The␈α~command␈α~channel␈α~is␈α~closed.␈α→ The
␈↓ ↓H␈↓␈↓ ↓hcommand␈α∀channel␈α∃may␈α∀be␈α∀closed␈α∃by␈α∀the ␈↓ εx␈↓α␈↓ πtAccess Control Commands␈↓
␈↓ ↓H␈↓␈↓ ↓hserver␈αat␈αany␈α
time,␈αbut␈αit␈α
will␈αtypically␈αdo␈α
so
␈↓ ↓H␈↓␈↓ ↓honly␈α
after␈αa␈α
request␈αfrom␈α
the␈αuser␈α
who␈αwill ␈↓ εx␈↓The␈α
following␈α
commands␈α
specify␈αaccess␈α
control
␈↓ ↓H␈↓␈↓ ↓hsend␈α≠it␈α≠when␈α≠≡nished␈α≠using␈α≠the␈α~FTP ␈↓ εx␈↓identi≡ers.␈α∂ Some␈α∂sites␈α∞may␈α∂not␈α∂require␈α∞them,
␈↓ ↓H␈↓␈↓ ↓hservice. ␈↓ εx␈↓but␈α⊃if␈α⊃issued␈α⊂they␈α⊃should␈α⊃be␈α⊃correct.␈α⊂ When
␈↓ εx␈↓needed␈α∃it␈α⊗is␈α∃the␈α⊗responsibility␈α∃of␈α⊗the␈α∃user
␈↓ ↓H␈↓α␈↓ β$FTP Replies␈↓ ␈↓ εx␈↓program␈α
to␈α
make␈α
sure␈α
that␈α
they␈α
arrive␈α
in␈α
the
␈↓ εx␈↓correct␈α⊗order.␈α⊗ Because␈α⊗the␈α⊗server␈α↔has␈α⊗the
␈↓ ↓H␈↓The␈α∂following␈α∂pages␈α∞contain␈α∂a␈α∂description␈α∞of ␈↓ εx␈↓faculty␈α∞to␈α∞close␈α∂the␈α∞connection␈α∞at␈α∞any␈α∂time,␈α∞it
␈↓ ↓H␈↓the␈α∩commands␈α∩available␈α∩in␈α∩the␈α∩Dialnet␈α∩File ␈↓ εx␈↓may␈αvery␈αwell␈αdo␈αso␈αafter␈α
several␈αunsuccessful
␈↓ ↓H␈↓Transfer␈α⊃Protocol␈α⊃and␈α⊃the␈α⊃corresponding␈α⊂set ␈↓ εx␈↓log-in trials.
␈↓ ↓H␈↓of replies.
␈↓ εx␈↓I. (USER <user-id>)
␈↓ ↓H␈↓It␈α≤is␈α≤strongly␈α≠recommended␈α≤that␈α≤␈↓↓all␈↓␈α≠the
␈↓ ↓H␈↓commands␈α∪be␈α∪implemented,␈α∪although␈α∪clearly ␈↓ εx␈↓With␈αthis␈αcommand␈αthe␈αuser␈αidenti≡es␈αhimself
␈↓ ↓H␈↓not all have the same importance. ␈↓ εx␈↓to␈α
the␈αserver␈α
so␈α
that␈αit␈α
is␈αgranted␈α
access␈α
to␈αits
␈↓ εx␈↓≡le␈α↔system.␈α↔ Some␈α↔sites␈α↔might␈α↔require␈α⊗this
␈↓ ↓H␈↓There␈α
are␈α∞only␈α
four␈α∞possible␈α
replies.␈α∞ In␈α
each ␈↓ εx␈↓command␈α∩to␈α⊃be␈α∩the␈α⊃≡rst␈α∩command␈α∩thru␈α⊃the
␈↓ ↓H␈↓of␈αthem␈αthe␈α≡rst␈αitem␈αidenti≡es␈αthe␈αreply.␈α The ␈↓ εx␈↓connection␈α∂and␈α∂may␈α∂even␈α∂require␈α⊂a␈α∂complete
␈↓ ↓H␈↓second␈α⊂item␈α∂is␈α⊂a␈α⊂list␈α∂which␈α⊂contains␈α⊂a␈α∂string ␈↓ εx␈↓log-in␈α∪sequence␈α∪with␈α∪a␈α∪password␈α∪and/or␈α∩an
␈↓ ↓H␈↓which␈α∀in␈α∀most␈α∃cases␈α∀is␈α∀passed␈α∀to␈α∃the␈α∀user ␈↓ εx␈↓account␈α
number.␈α
A␈α
new␈α
USER␈α
command␈α
may
␈↓ ↓H␈↓without␈α∞further␈α∞processing.␈α∞ Hence,␈α∞there␈α∞is␈α∞a ␈↓ εx␈↓be␈αsent␈αat␈αany␈αtime,␈αin␈αwhich␈αthere␈αis␈αno␈αdata
␈↓ ↓H␈↓choice␈α∀as␈α∀to␈α∀the␈α∀amount␈α∀of␈α∀information␈α∪to ␈↓ εx␈↓transmission,␈α→to␈α→change␈α→the␈α~access␈α→control
␈↓ ↓H␈↓return in a reply.
␈↓ ↓H␈↓αFile transfer protocol␈↓ εP␈↓ ;14
␈↓ ↓H␈↓and/or␈α"accounting␈α"information.␈α! Transfer ␈↓ εx␈↓␈↓ π_Even␈α
if␈α
the␈α
server␈α
has␈α
no␈α
accounting␈α
service
␈↓ ↓H␈↓parameters are unchanged by this command. ␈↓ εx␈↓␈↓ πxthis␈α⊂reply␈α⊂should␈α⊂be␈α⊂sent␈α⊂in␈α⊂case␈α∂a
␈↓ εx␈↓␈↓ πx≡xed␈α∩sequence␈α∪has␈α∩been␈α∪issued␈α∩by
␈↓ ↓H␈↓Replies: ␈↓ εx␈↓␈↓ πxthe user.
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(OK)␈↓ ␈↓ εx␈↓␈↓ π_␈↓↓(FAILED (<reason>))␈↓
␈↓ ↓H␈↓␈↓ ↓hThe␈α∩user␈α∩has␈α∩successfully␈α∩logged␈α∩into␈α⊃the
␈↓ ↓H␈↓␈↓ αHforeign␈α#host.␈α# No␈α$password␈α#is ␈↓ εx␈↓IV. (BYE)
␈↓ ↓H␈↓␈↓ αHrequired.
␈↓ εx␈↓The␈αuser␈αsends␈α
this␈αmessage␈αbefore␈αclosing␈α
the
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(OK (PASSWORD?))␈↓ ␈↓ εx␈↓connection, to say it is going away.
␈↓ ↓H␈↓␈↓ ↓hThe␈α⊃<user-id>␈α∩was␈α⊃accepted␈α⊃but␈α∩a␈α⊃correct ␈↓ εx␈↓Replies:
␈↓ ↓H␈↓␈↓ αHpassword␈αis␈αrequired␈αto␈αcontinue␈αthe
␈↓ ↓H␈↓␈↓ αHlog-in process. ␈↓ εx␈↓␈↓ π_␈↓↓(OK)␈↓
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(BUSY (<reason>))␈↓ ␈↓ εx␈↓α␈↓ λ∩The DATA Command␈↓
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(FAILED (<reason>))␈↓ ␈↓ εx␈↓V. (DATA <byte-size> <type> <structure>)
␈↓ εx␈↓The␈α∩systems␈α∩that␈α⊃communicate␈α∩by␈α∩means␈α⊃of
␈↓ ↓H␈↓II. (PASSWORD <password>) ␈↓ εx␈↓Dialnet␈α∨may␈α∨have␈α∨di≥erent␈α∨word␈α≡(byte)
␈↓ εx␈↓lengths,␈α⊂employ␈α⊂di≥erent␈α⊂data␈α∂representations
␈↓ ↓H␈↓The␈α
argument␈α
is␈α
a␈α
character␈α
string␈α
specifying ␈↓ εx␈↓and␈α⊗structure␈α⊗their␈α⊗stored␈α⊗data␈α⊗in␈α∃various
␈↓ ↓H␈↓the user's password. ␈↓ εx␈↓ways.␈α∂ To␈α∂solve␈α∂this␈α∂problem␈α∂we␈α∂de≡ne␈α∞some
␈↓ εx␈↓standard␈α∪default␈α∩values␈α∪of␈α∪these␈α∩parameters
␈↓ ↓H␈↓Replies: ␈↓ εx␈↓and␈α⊂employ␈α⊂the␈α⊂DATA␈α⊂command␈α⊂to␈α⊂change
␈↓ εx␈↓them␈α
in␈α∞cases␈α
in␈α
which␈α∞the␈α
standards␈α∞are␈α
not
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(OK)␈↓ ␈↓ εx␈↓adequate.␈α& All␈α&users␈α&of␈α'Dialnet␈α&must
␈↓ εx␈↓implement␈α∂the␈α∂defaults,␈α∂that␈α∂is,␈α∂they␈α∂must␈α∂be
␈↓ ↓H␈↓␈↓ ↓hUser log-in completed. ␈↓ εx␈↓able␈α∂to␈α∂send␈α⊂and␈α∂receive␈α∂meaningful␈α⊂data␈α∂in
␈↓ εx␈↓contiguous␈α
logical␈α
units␈α
of␈α
8␈α
bits,␈α
which␈αcan␈α
be
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(OK (ACCOUNT?))␈↓ ␈↓ εx␈↓interpreted␈α
as␈α
standard␈α
ASCII␈α
characters␈α
and
␈↓ εx␈↓are␈α
always␈α
transferred␈α
in␈α
groups␈α∞delimited␈α
by
␈↓ ↓H␈↓␈↓ ↓hThe␈α≤<password>␈α≤was␈α≤accepted␈α≥but␈α≤an ␈↓ εx␈↓end-of-≡le characters.
␈↓ ↓H␈↓␈↓ αHaccount␈α∪speci≡cation␈α∪is␈α∪required␈α∩to
␈↓ ↓H␈↓␈↓ αHcontinue the log-in process. ␈↓ εx␈↓When␈α∃a␈α∃connection␈α∀is␈α∃≡rst␈α∃established,␈α∀the
␈↓ εx␈↓server␈αwill␈αassume␈αthat␈αthe␈αdefault␈α
values␈αwill
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(FAILED (<reason>))␈↓ ␈↓ εx␈↓be␈α∩used␈α∪and␈α∩will␈α∩be␈α∪prepared␈α∩to␈α∪make␈α∩the
␈↓ εx␈↓necessary␈α∩data␈α∩conversions␈α∩from␈α∩his␈α∩own␈α∩to
␈↓ εx␈↓the␈α
default␈α
form␈α
when␈α
sending,␈α
and␈α
from␈α
the
␈↓ ↓H␈↓III. (ACCOUNT <account>) ␈↓ εx␈↓default to its own when receiving.
␈↓ ↓H␈↓The␈αargument␈α
is␈αa␈α
string␈αidentifying␈αthe␈α
user's ␈↓ εx␈↓Often␈α∨user␈α and␈α∨server␈α∨will␈α be␈α∨similar
␈↓ ↓H␈↓account. ␈↓ εx␈↓machines␈α_and␈α_converting␈α_the␈α_data␈α_to␈α_the
␈↓ εx␈↓standard␈α⊗default␈α⊗form␈α⊗will␈α⊗be␈α∃unnecessary.
␈↓ ↓H␈↓Replies: ␈↓ εx␈↓The␈α∩DATA␈α∩command␈α∪allows␈α∩a␈α∩user␈α∪to␈α∩tell
␈↓ εx␈↓which␈α⊂are␈α⊂the␈α⊃parameters␈α⊂that␈α⊂he␈α⊃wants␈α⊂the
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(OK)␈↓ ␈↓ εx␈↓server␈α∃to␈α∃employ␈α∃on␈α∃the␈α∃data␈α∃in␈α∃order␈α∃to
␈↓ ↓H␈↓αFile transfer protocol␈↓ εP␈↓ =15
␈↓ ↓H␈↓minimize␈α∞the␈α∞user's␈α∞data␈α∞conversion␈α∞e≥ort.␈α
It ␈↓ εx␈↓If␈αa␈αsite␈αreceives␈αand␈αstores␈αa␈α≡le␈αwhile␈αcertain
␈↓ ↓H␈↓can␈α
be␈α
issued␈α
as␈αmany␈α
times␈α
as␈α
desired␈αbut␈α
not ␈↓ εx␈↓parameter␈α~values␈α~are␈α~active␈α~and␈α~is␈α~later
␈↓ ↓H␈↓during␈α
a␈α
data␈αtransmission.␈α
Of␈α
course,␈α
it␈αcan ␈↓ εx␈↓requested␈α∩to␈α⊃return␈α∩that␈α⊃≡le␈α∩using␈α∩the␈α⊃same
␈↓ ↓H␈↓also␈α
be␈αused␈α
to␈αreturn␈α
to␈αthe␈α
standard␈αdefault ␈↓ εx␈↓values,␈αthe␈αinput␈α
and␈αoutput␈αcopies␈α
should␈αbe
␈↓ ↓H␈↓form. ␈↓ εx␈↓identical.␈α→Also␈α→we␈α→must␈α→require␈α→that␈α→any
␈↓ εx␈↓transformation␈α∩su≥ered␈α∩by␈α∩a␈α∩≡le␈α∩during␈α⊃the
␈↓ ↓H␈↓All␈α~the␈α→arguments␈α~should␈α→be␈α~given,␈α→and ␈↓ εx␈↓process␈α
of␈α
storing␈α
it␈αdo␈α
not␈α
a≥ect␈α
the␈αcontents
␈↓ ↓H␈↓precisely␈α⊃in␈α∩the␈α⊃speci≡ed␈α⊃order.␈α∩ They␈α⊃stand ␈↓ εx␈↓of that ≡le if output in another form.
␈↓ ↓H␈↓for:
␈↓ εx␈↓Replies:
␈↓ ↓H␈↓␈↓ ↓h<byte-size>␈α∂is␈α∂a␈α∂decimal␈α∂number␈α∂specifying
␈↓ ↓H␈↓␈↓ αHthe␈α_desired␈α_logical␈α_byte␈α→size,␈α_i.e., ␈↓ εx␈↓␈↓ π_␈↓↓(OK)␈↓
␈↓ ↓H␈↓␈↓ αHstarting␈αwith␈αthe␈α≡rst␈αbit␈αtransmitted
␈↓ ↓H␈↓␈↓ αHon␈α∀the␈α∀data␈α∀channel,␈α∀every␈α∪<byte- ␈↓ εx␈↓␈↓ π_Good, the server agrees.
␈↓ ↓H␈↓␈↓ αHsize>␈α
bits␈αare␈α
a␈αcomplete␈α
entity.␈αThe
␈↓ ↓H␈↓␈↓ αHdefault byte size is 8. ␈↓ εx␈↓␈↓ π_␈↓↓(BUSY (<reason>))␈↓
␈↓ ↓H␈↓␈↓ ↓h<type> may be: ␈↓ εx␈↓␈↓ π_You␈α
are␈α
not␈α
allowed␈α
to␈α
change␈α
the␈αtransfer
␈↓ εx␈↓␈↓ πxparameters now.
␈↓ ↓H␈↓␈↓ αλASCII Data consist of a sequence of
␈↓ ↓H␈↓␈↓ αhcontiguous standard 8-bit ASCII ␈↓ εx␈↓␈↓ π_␈↓↓(FAILED (<reason>))␈↓
␈↓ ↓H␈↓␈↓ αhcharacters. The end of a line of
␈↓ ↓H␈↓␈↓ αhtext is denoted by a sequence ␈↓ εx␈↓␈↓ π_The␈α
server␈α
may␈α
not␈α
have␈α
implemented␈α
one
␈↓ ↓H␈↓␈↓ αh<CRLF>. This is the default ␈↓ εx␈↓␈↓ πxor␈α⊃several␈α∩of␈α⊃the␈α∩parameter␈α⊃values
␈↓ ↓H␈↓␈↓ αhtype. ␈↓ εx␈↓␈↓ πxspeci≡ed␈αby␈α
the␈αarguments,␈αor␈α
it␈αcan
␈↓ εx␈↓␈↓ πxaccept␈α!each␈α!of␈α!them␈α!in␈α!some
␈↓ ↓H␈↓␈↓ αλEBCDIC Data consist of 8-bit EBCDIC ␈↓ εx␈↓␈↓ πxcombination␈α!but␈α!not␈α!the␈α!three
␈↓ ↓H␈↓␈↓ αhcharacters. The end of a line of ␈↓ εx␈↓␈↓ πxtogether␈α
as␈α
required␈α
in␈α
the␈α
command
␈↓ ↓H␈↓␈↓ αhtext is denoted by a <NL> ␈↓ εx␈↓␈↓ πxor␈α⊗the␈α⊗arguments␈α⊗are␈α⊗not␈α↔in␈α⊗the
␈↓ ↓H␈↓␈↓ αhcharacter. ␈↓ εx␈↓␈↓ πxcorrect order, etc.
␈↓ ↓H␈↓␈↓ αλIMAGE Data consist of a stream of ␈↓ εx␈↓α␈↓ λ¬FTP Service Commands␈↓
␈↓ ↓H␈↓␈↓ αhcontiguous bits that should be
␈↓ ↓H␈↓␈↓ αhtaken in contiguous groups of size ␈↓ εx␈↓VI. (RETRIEVE <for-path-name>)
␈↓ ↓H␈↓␈↓ αhgiven by the value of <byte-size>.
␈↓ ↓H␈↓␈↓ αhThis type is intended for e≠cient ␈↓ εx␈↓This␈αcommand␈αtells␈α
the␈αserver␈αto␈αsend␈α
the␈α≡le
␈↓ ↓H␈↓␈↓ αhtransmission between similar ␈↓ εx␈↓speci≡ed␈α~by␈α~<for-path-name>␈α~to␈α≠the␈α~user.
␈↓ ↓H␈↓␈↓ αhmachines. ␈↓ εx␈↓Upon␈α⊗receiving␈α⊗it,␈α⊗the␈α⊗output␈α⊗side␈α⊗of␈α⊗the
␈↓ εx␈↓server's␈α⊃program␈α⊂should␈α⊃look␈α⊂for␈α⊃this␈α⊃≡le␈α⊂in
␈↓ ↓H␈↓␈↓ ↓h<structure> may be: ␈↓ εx␈↓the␈αserver's␈α≡le␈αsystem.␈α
Then␈αit␈αwill␈αreport␈α
the
␈↓ εx␈↓result␈α∪of␈α∀the␈α∪lookup␈α∀operation␈α∪(so␈α∀that␈α∪the
␈↓ ↓H␈↓␈↓ αλFILE␈α∃File␈α∃(no␈α∃internal␈α∃structure).␈α∃The ␈↓ εx␈↓user's␈α→program␈α~can␈α→be␈α→informed)␈α~and,␈α→if
␈↓ ↓H␈↓␈↓ αhend␈αof␈αa␈α≡le␈αis␈αmarked␈αby␈αan␈αend- ␈↓ εx␈↓successful,␈α
will␈α
start␈α
transmitting.␈α
At␈α∞the␈α
end,
␈↓ ↓H␈↓␈↓ αhof-≡le packet. ␈↓ εx␈↓a␈α_report␈α_about␈α↔the␈α_result␈α_of␈α_the␈α↔transfer
␈↓ εx␈↓operation will also be emitted.
␈↓ ↓H␈↓␈↓ αλRECORD␈α≥The␈α≡data␈α≥is␈α≡grouped␈α≥in
␈↓ ↓H␈↓␈↓ αhrecords␈α
delimited␈α
by␈α
an␈α
EOR␈α
(end ␈↓ εx␈↓Primary replies:
␈↓ ↓H␈↓␈↓ αhof␈α∂record)␈α∂marker.␈α∞At␈α∂the␈α∂end␈α∞of
␈↓ ↓H␈↓␈↓ αhthe␈α~≡le␈α→there␈α~is␈α~an␈α→end-of-≡le ␈↓ εx␈↓␈↓ π_␈↓↓(OK (<text>))␈↓
␈↓ ↓H␈↓␈↓ αhpacket after the last EOR.
␈↓ ↓H␈↓αFile transfer protocol␈↓ εP␈↓ >16
␈↓ ↓H␈↓␈↓ ↓hThe␈α⊂lookup␈α⊃succeeded␈α⊂and␈α⊂the␈α⊃server␈α⊂has ␈↓ εx␈↓␈↓ π_␈↓↓(STOPPED (<text>))␈↓
␈↓ ↓H␈↓␈↓ αHstarted sending the ≡le.
␈↓ εx␈↓␈↓ π_Channel␈α≠2␈α≠closed␈α≠before␈α≠an␈α≠end-of-≡le
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(BUSY (<reason>)) ␈↓ εx␈↓␈↓ πxarrived.␈α∀The␈α∀part␈α∀of␈α∀the␈α∀≡le␈α∪that
␈↓ εx␈↓␈↓ πxhad␈α⊃already␈α⊃been␈α⊃received␈α∩(if␈α⊃any)
␈↓ ↓H␈↓↓␈↓ ↓h(FAILED (<reason>))␈↓ ␈↓ εx␈↓␈↓ πxwill␈α⊗not␈α↔be␈α⊗saved.␈α↔ The␈α⊗STORE
␈↓ εx␈↓␈↓ πxcommand will not have any e≥ect.
␈↓ ↓H␈↓ Secondary replies:
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(DONE (<text>))␈↓ ␈↓ εx␈↓VIII. (APPEND <for-path-name>)
␈↓ ↓H␈↓␈↓ ↓hThe␈α~transfer␈α~is␈α~≡nished␈α~and␈α≠the␈α~data ␈↓ εx␈↓This␈αcommand␈αtells␈αthe␈αserver␈αto␈αopen␈αthe␈α≡le
␈↓ ↓H␈↓␈↓ αHchannel closed. ␈↓ εx␈↓speci≡ed␈α∀by␈α∪<for-path-name>␈α∀for␈α∀input␈α∪and
␈↓ εx␈↓append␈α∞to␈α∞it␈α∞the␈α∞data␈α∞that␈α∞the␈α∞user␈α∞will␈α∞send
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(STOPPED (<text>))␈↓ ␈↓ εx␈↓thru␈α∪channel␈α∪2.␈α∪ If␈α∪no␈α∪≡le␈α∪exists␈α∀with␈α∪that
␈↓ εx␈↓name␈α∞this␈α∞command␈α∞will␈α∞have␈α∞the␈α∞e≥ect␈α∂of␈α∞a
␈↓ ↓H␈↓␈↓ ↓hChannel␈α∂1␈α∂was␈α∞closed␈α∂before␈α∂an␈α∞end-of-≡le ␈↓ εx␈↓STORE command.
␈↓ ↓H␈↓␈↓ αHhad␈α∩arrived.␈α∪ The␈α∩part␈α∩of␈α∪the␈α∩≡le
␈↓ ↓H␈↓␈↓ αHthat␈α
had␈α
already␈α
been␈αtransmitted␈α
(if ␈↓ εx␈↓Primary replies:
␈↓ ↓H␈↓␈↓ αHany)␈α~will␈α~not␈α~be␈α~saved,␈α~i.e.␈α→the
␈↓ ↓H␈↓␈↓ αHRETRIEVE␈αcommand␈αwill␈αnot␈α
have ␈↓ εx␈↓␈↓ π_␈↓↓(OK (<text>))␈↓
␈↓ ↓H␈↓␈↓ αHany e≥ect.
␈↓ εx␈↓␈↓ π_The ≡le has been found or created.
␈↓ ↓H␈↓VII. (STORE <for-path-name>) ␈↓ εx␈↓␈↓ π_␈↓↓(BUSY (<reason>))
␈↓ ↓H␈↓The␈α∩server␈α∩should␈α∪open␈α∩a␈α∩≡le␈α∪named␈α∩<for- ␈↓ εx␈↓↓␈↓ π_(FAILED (<reason>))␈↓
␈↓ ↓H␈↓path-name>␈α∞and␈α∂store␈α∞in␈α∞it␈α∂the␈α∞data␈α∂that␈α∞the
␈↓ ↓H␈↓user␈αwill␈αsend.␈αIf␈αa␈α≡le␈αwith␈αthat␈αname␈αalready ␈↓ εx␈↓␈↓ π_Secondary replies:
␈↓ ↓H␈↓exists␈α
at␈α∞the␈α
server␈α
site␈α∞it␈α
will␈α∞be␈α
overwritten,
␈↓ ↓H␈↓otherwise the server should create it. ␈↓ εx␈↓␈↓ π_␈↓↓(DONE (<text>))␈↓
␈↓ ↓H␈↓Primary replies: ␈↓ εx␈↓␈↓ π_The␈α∂transfer␈α∂is␈α∂≡nished␈α∂(an␈α∂end-of-≡le␈α∂has
␈↓ εx␈↓␈↓ πxbeen␈α∃received).␈α∀ The␈α∃≡le␈α∃is␈α∀closed
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(OK (<text>))␈↓ ␈↓ εx␈↓␈↓ πxand so is data channel 2.
␈↓ ↓H␈↓␈↓ ↓hThe␈α⊃≡le␈α⊃has␈α⊂been␈α⊃found␈α⊃or␈α⊃created.␈α⊂ The ␈↓ εx␈↓␈↓ π_␈↓↓(STOPPED (<text>))␈↓
␈↓ ↓H␈↓␈↓ αHserver␈α⊃is␈α⊃ready␈α⊃to␈α⊃receive␈α⊃the␈α⊃data
␈↓ ↓H␈↓␈↓ αHthru channel 2. ␈↓ εx␈↓␈↓ π_Channel␈α∂2␈α∞has␈α∂been␈α∞closed␈α∂before␈α∂an␈α∞end-
␈↓ εx␈↓␈↓ πxof-≡le␈α∂has␈α∂arrived.␈α∂The␈α∂part␈α⊂of␈α∂the
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(BUSY (<reason>)) ␈↓ εx␈↓␈↓ πx≡le␈α⊃that␈α⊂had␈α⊃already␈α⊃been␈α⊂received
␈↓ εx␈↓␈↓ πx(if␈α↔any)␈α↔will␈α⊗not␈α↔be␈α↔saved.␈α⊗ The
␈↓ ↓H␈↓↓␈↓ ↓h(FAILED (<reason>))␈↓ ␈↓ εx␈↓␈↓ πxAPPEND␈α∪command␈α∪will␈α∪not␈α∩have
␈↓ εx␈↓␈↓ πxany e≥ect.
␈↓ ↓H␈↓Secondary replies:
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(DONE (<text>))␈↓
␈↓ ↓H␈↓␈↓ ↓hThe␈α∂transfer␈α∂is␈α∂≡nished␈α∂(an␈α∂end-of-≡le␈α∂has
␈↓ ↓H␈↓␈↓ αHbeen␈α∃received).␈α∀ The␈α∃≡le␈α∃is␈α∀closed
␈↓ ↓H␈↓␈↓ αHand so is data channel 2.
␈↓ ↓H␈↓αFile transfer protocol␈↓ εP␈↓ >17
␈↓ ↓H␈↓IX. (ABORT) ␈↓ εx␈↓XI. (DELETE <for-path-name>)
␈↓ ↓H␈↓This␈α∩command␈α∪tells␈α∩the␈α∪server␈α∩that␈α∪the␈α∩≡le ␈↓ εx␈↓The␈α⊗server␈α↔is␈α⊗instructed␈α↔to␈α⊗delete␈α↔the␈α⊗≡le
␈↓ ↓H␈↓transfer␈α⊂requested␈α⊂by␈α⊂the␈α⊂previous␈α⊂command ␈↓ εx␈↓speci≡ed by <for-path-name>.
␈↓ ↓H␈↓has␈α~been␈α→cancelled.␈α~For␈α→that␈α~purpose␈α→an
␈↓ ↓H␈↓interrupt␈α⊂packet␈α⊂is␈α⊂sent␈α⊂to␈α⊂the␈α⊂server␈α⊂on␈α∂the ␈↓ εx␈↓Replies:
␈↓ ↓H␈↓data␈α$channel.␈α#Because␈α$the␈α$server␈α#was
␈↓ ↓H␈↓attending␈α∩that␈α∩channel,␈α∩it␈α∩will␈α∩recognize␈α⊃the ␈↓ εx␈↓␈↓ π_␈↓↓(OK)␈↓
␈↓ ↓H␈↓packet,␈α⊗terminate␈α⊗any␈α⊗data␈α⊗transmission␈α⊗or
␈↓ ↓H␈↓reception␈α≡and␈α≡turn␈α≡its␈α≡attention␈α∨to␈α≡the ␈↓ εx␈↓␈↓ π_The ≡le has been deleted.
␈↓ ↓H␈↓command␈α∂channel.␈α∞ Any␈α∂data␈α∞received␈α∂so␈α∞far
␈↓ ↓H␈↓will␈αbe␈αdiscarded.␈αThe␈αprevious␈αcommand␈αwill ␈↓ εx␈↓␈↓ π_␈↓↓(BUSY (<reason>))
␈↓ ↓H␈↓have␈αno␈αe≥ect␈αon␈αthe␈α≡les␈αof␈αeither␈αthe␈αuser␈α
or
␈↓ ↓H␈↓the␈α∃server.␈α∀ Had␈α∃the␈α∀transfer␈α∃already␈α∀been ␈↓ εx␈↓↓␈↓ π_(FAILED (<reason>))␈↓
␈↓ ↓H␈↓completed␈α∪and␈α∪the␈α∪data␈α∪channel␈α∪closed,␈α∩the
␈↓ ↓H␈↓receiver␈α
would␈α∞have␈α
already␈α∞closed␈α
the␈α∞≡le␈α
in
␈↓ ↓H␈↓its␈α↔≡le␈α↔system␈α_and␈α↔no␈α↔abortion␈α_would␈α↔be ␈↓ εx␈↓XI. (DIRECTORY <for-dir-name>)
␈↓ ↓H␈↓possible.
␈↓ εx␈↓This␈αcommand␈αasks␈α
the␈αserver␈αfor␈α
a␈αlist␈αof␈α
the
␈↓ ↓H␈↓Only␈α∃≡le␈α∃transfers␈α∃can␈α∃be␈α∃aborted␈α∃because ␈↓ εx␈↓≡les␈α⊗in␈α↔the␈α⊗directory␈α⊗speci≡ed␈α↔by␈α⊗<for-dir-
␈↓ ↓H␈↓there␈α
is␈α
no␈α
control␈α
on␈α
the␈α
other␈α
services␈α
from ␈↓ εx␈↓name>.␈α∂If␈α∂no␈α∞argument␈α∂is␈α∂given␈α∞a␈α∂list␈α∂of␈α∞the
␈↓ ↓H␈↓the␈α%very␈α$≡rst␈α%moment␈α$in␈α%which␈α$the ␈↓ εx␈↓≡les␈α
in␈αthe␈α
log-in␈α
directory␈αshould␈α
be␈αsent.␈α
The
␈↓ ↓H␈↓corresponding command is issued. ␈↓ εx␈↓information␈α∃will␈α∃be␈α∃contained␈α∃in␈α∃the␈α∀reply
␈↓ εx␈↓(sent thru the command channel).
␈↓ ↓H␈↓Replies:
␈↓ εx␈↓Replies:
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(OK)
␈↓ εx␈↓␈↓ π_␈↓↓(OK <≡le-list>)␈↓
␈↓ ↓H␈↓↓␈↓ ↓h(FAILED (<reason>))␈↓
␈↓ εx␈↓␈↓ π_<≡le-list>␈α∪is␈α∪the␈α∪requested␈α∪list␈α∪of␈α∀≡les.␈α∪ It
␈↓ εx␈↓␈↓ πxshould␈α_be␈α→passed␈α_directly␈α→to␈α_the
␈↓ ↓H␈↓X.␈α! (RENAME␈α!<for-path-name1>␈α!TO ␈↓ εx␈↓␈↓ πxhuman user.
␈↓ ↓H␈↓<for-path-name2>)
␈↓ εx␈↓␈↓ π_␈↓↓(FAILED (<reason>))␈↓
␈↓ ↓H␈↓The␈α
server␈α
is␈α
instructed␈α
to␈α
change␈α
the␈αname␈α
of
␈↓ ↓H␈↓<for-path-name1> to <for-path-name2>.
␈↓ εx␈↓XII. (STATUS)
␈↓ ↓H␈↓Replies:
␈↓ εx␈↓With␈α∨this␈α∨command␈α∨the␈α∨user␈α∨asks␈α∨for
␈↓ ↓H␈↓␈↓ ↓h␈↓↓(OK) ␈↓ εx␈↓whatever␈α
information␈α∞the␈α
server␈α
may␈α∞want␈α
to
␈↓ εx␈↓send␈αhim.␈α It␈αmay␈αbe␈αissued␈αat␈αany␈αtime.␈α The
␈↓ ↓H␈↓↓␈↓ ↓h(BUSY (<reason>)) ␈↓ εx␈↓information␈αwill␈αbe␈αsent␈αas␈αa␈αreply␈αon␈αchannel
␈↓ εx␈↓0␈α∃(the␈α∃command␈α∀channel!)␈α∃and␈α∃is␈α∀intended
␈↓ ↓H␈↓↓␈↓ ↓h(FAILED (<reason>))␈↓ ␈↓ εx␈↓exclusively for human users.
␈↓ εx␈↓Replies:
␈↓ εx␈↓␈↓ π_␈↓↓(OK <information-list>))␈↓
␈↓ εx␈↓␈↓ π_The␈α∨contents␈α≡of␈α∨the␈α≡<information-list>
␈↓ ↓H␈↓αFile transfer protocol␈↓ εP␈↓ =18
␈↓ ↓H␈↓␈↓ αHshould␈αbe␈αdirectly␈αsent␈αto␈αthe␈α
human ␈↓ εx␈↓␈↓ π_DATA␈α∨COUNT␈α∨¬␈α∨a␈α∨8.-bit␈α∨quantity
␈↓ ↓H␈↓␈↓ αHuser␈α∪for␈α∀its␈α∪interpretation.␈α∀This␈α∪is ␈↓ εx␈↓␈↓ πxindicating␈α∪how␈α∀many␈α∪bytes␈α∀are␈α∪in
␈↓ ↓H␈↓␈↓ αHthe only legal reply. ␈↓ εx␈↓␈↓ πxthe␈αdata␈α≡eld␈αof␈αthe␈αpacket␈αafter␈αthe
␈↓ εx␈↓␈↓ πx≡rst data byte.
␈↓ ↓H␈↓α␈↓ β*9. Glossary ␈↓ εx␈↓␈↓ π_␈↓↓Dialnet␈↓␈α∀¬␈α∪a␈α∀communications␈α∀protocol␈α∪for
␈↓ εx␈↓␈↓ πxdata␈α∨transmission␈α over␈α∨standard
␈↓ ↓H␈↓The␈α
following␈α
terms␈α
are␈α
used␈α
in␈αthis␈α
document ␈↓ εx␈↓␈↓ πxphone␈α⊃lines.␈α⊃ This␈α⊃term␈α∩also␈α⊃refers
␈↓ ↓H␈↓and are de≡ned here to remove ambiguity: ␈↓ εx␈↓␈↓ πxinformally␈α∞to␈α∞the␈α
set␈α∞of␈α∞hosts␈α
which
␈↓ εx␈↓␈↓ πximplement ␈↓↓Dialnet␈↓.
␈↓ ↓H␈↓␈↓ ↓hACKNOWLEDGEMENT␈α"¬␈α#an␈α"8.-bit
␈↓ ↓H␈↓␈↓ αHquantity␈α∩which␈α∩speci≡es␈α∩the␈α∩packet ␈↓ εx␈↓␈↓ π_EOP␈α⊂¬␈α⊂a␈α⊂marker␈α∂used␈α⊂to␈α⊂indicate␈α⊂end␈α∂of
␈↓ ↓H␈↓␈↓ αHsequence␈α≠number␈α≠of␈α≠the␈α≠highest ␈↓ εx␈↓␈↓ πxpacket.␈α≤ EOP␈α≠consists␈α≤of␈α≠ASCII
␈↓ ↓H␈↓␈↓ αHconsecutive␈α∩packet␈α∩which␈α∩has␈α⊃been ␈↓ εx␈↓␈↓ πxDLE␈α⊂(220)␈α∂followed␈α⊂by␈α⊂ETX␈α∂(202).
␈↓ ↓H␈↓␈↓ αHsuccessfully␈α?␈α↔received.␈α?␈α↔ An ␈↓ εx␈↓␈↓ πxIt␈α⊃is␈α⊃a␈α⊂violation␈α⊃of␈α⊃packet␈α⊂framing
␈↓ ↓H␈↓␈↓ αHacknowledgement␈α≠implies␈α≤that␈α≠all ␈↓ εx␈↓␈↓ πxfor␈α⊃a␈α⊃packet␈α⊃to␈α⊃end␈α∩with␈α⊃anything
␈↓ ↓H␈↓␈↓ αHpackets␈α1with␈α2lower␈α1sequence ␈↓ εx␈↓␈↓ πxother␈α
than␈αan␈α
EOP.␈α A␈α
packet␈αis␈α
not
␈↓ ↓H␈↓␈↓ αHnumbers have been received as well. ␈↓ εx␈↓␈↓ πxcompletely␈α∪received␈α∪until␈α∀this␈α∪code
␈↓ εx␈↓␈↓ πxhas␈α∀been␈α∃received.␈α∀ Note␈α∃that␈α∀the
␈↓ ↓H␈↓␈↓ ↓hBYTE␈α¬␈α
an␈α8.-bit␈αquantity.␈α
While␈α␈↓↓Dialnet␈↓ ␈↓ εx␈↓␈↓ πx200␈α∂bit␈α∞must␈α∂be␈α∞set␈α∂for␈α∞an␈α∂EOP␈α∞to
␈↓ ↓H␈↓␈↓ αHtransmissions␈αare␈α
to␈αbe␈αconsidered␈α
as ␈↓ εx␈↓␈↓ πxbe recognized as such.
␈↓ ↓H␈↓␈↓ αHa␈α$bit␈α#stream,␈α$this␈α$concept␈α#is
␈↓ ↓H␈↓␈↓ αHconvenient to use for many reasons. ␈↓ εx␈↓␈↓ π_HOST␈α
¬␈α∞a␈α
system␈α∞with␈α
␈↓↓Dialnet␈↓-compatible
␈↓ εx␈↓␈↓ πxmodems␈α?and␈α>␈↓↓Dialnet␈↓-support
␈↓ ↓H␈↓␈↓ ↓hBYTE␈α
SIZE␈α¬␈α
this␈αrefers␈α
to␈αthe␈α
byte␈αsize␈α
of ␈↓ εx␈↓␈↓ πxsoftware␈α
which␈α
knows␈α
the␈α
telephone
␈↓ ↓H␈↓␈↓ αHdata␈α⊂as␈α⊂seen␈α⊂by␈α⊂the␈α⊂host␈α∂computer. ␈↓ εx␈↓␈↓ πxnumber of at least one other host.
␈↓ ↓H␈↓␈↓ αHAll␈α∂␈↓↓Dialnet␈↓␈α∞transmissions␈α∂should␈α∞be
␈↓ ↓H␈↓␈↓ αHconsidered␈α∩bit␈α∩stream␈α∩transmissions ␈↓ εx␈↓␈↓ π_HOST-HOST␈α*PROTOCOL␈α*¬␈α)The
␈↓ ↓H␈↓␈↓ αHsent in units of 8.-bit bytes. ␈↓ εx␈↓␈↓ πxprotocol␈α2which␈α2provides␈α2for
␈↓ εx␈↓␈↓ πxcompatible␈α⊗communication␈α∃between
␈↓ ↓H␈↓␈↓ ↓hCHANNEL␈α
¬␈αan␈α
8.-bit␈αquantity␈α
identifying ␈↓ εx␈↓␈↓ πxtwo␈α
processes␈α
running␈α
on␈α(probably)
␈↓ ↓H␈↓␈↓ αHwhich␈α!data␈α!stream␈α"this␈α!packet ␈↓ εx␈↓␈↓ πxdissimilar hosts.
␈↓ ↓H␈↓␈↓ αHbelongs␈α to.␈α Channels␈α have␈α no
␈↓ ↓H␈↓␈↓ αHmeaning␈α∃to␈α∀the␈α∃host-host␈α∀protocol, ␈↓ εx␈↓␈↓ π_LINE␈α⊃TRANSMISSION␈α⊃PROTOCOL␈α⊂¬
␈↓ ↓H␈↓␈↓ αHonly␈α#to␈α"higher␈α#level␈α"protocols. ␈↓ εx␈↓␈↓ πxThe␈α_protocol␈α_which␈α_provides␈α_for
␈↓ ↓H␈↓␈↓ αHChannel␈α⊂0␈α⊃is␈α⊂the␈α⊃channel␈α⊂normally ␈↓ εx␈↓␈↓ πxerror␈α∂free␈α∂transmission␈α∂between␈α∞two
␈↓ ↓H␈↓␈↓ αHused. ␈↓ εx␈↓␈↓ πxhosts␈α
with␈α
a␈α
common␈α∞modem␈α
which
␈↓ εx␈↓␈↓ πxuse the Host-Host protocol.
␈↓ ↓H␈↓␈↓ ↓hCHECKSUM␈α*¬␈α*a␈α+16.-bit␈α*quantity
␈↓ ↓H␈↓␈↓ αHcontaining␈α∂a␈α∂packet␈α⊂checksum,␈α∂used ␈↓ εx␈↓␈↓ π_OP␈α∂CODE␈α∂¬␈α∂a␈α∂␈↓↓Dialnet␈↓␈α∂host-host␈α∂protocol
␈↓ ↓H␈↓␈↓ αHin error detection. ␈↓ εx␈↓␈↓ πxoperation code.
␈↓ ↓H␈↓␈↓ ↓hCONNECTION␈α→¬␈α→a␈α→logical␈α→connection ␈↓ εx␈↓␈↓ π_PACKET␈α ¬␈α a␈α∨logical␈α unit␈α of␈α∨data
␈↓ ↓H␈↓␈↓ αHbetween␈α∂two␈α∂processes.␈α∞ Connections ␈↓ εx␈↓␈↓ πxtransmitted␈α≤over␈α≤a␈α≤␈↓↓Dialnet␈↓␈α≤link.
␈↓ ↓H␈↓␈↓ αHare bidirectional. ␈↓ εx␈↓␈↓ πxThe␈αpacket␈αis␈αthe␈αelementary␈αunit␈αof
␈↓ εx␈↓␈↓ πx␈↓↓Dialnet␈↓␈α∩transmissions.␈α∩ A␈α∩packet␈α∩is
␈↓ ↓H␈↓␈↓ ↓hDATA␈α↔¬␈α⊗an␈α↔arbitrary␈α⊗amount␈α↔of␈α⊗data ␈↓ εx␈↓␈↓ πxbasically␈α∃data␈α∃with␈α∃a␈α⊗header␈α∃and
␈↓ ↓H␈↓␈↓ αHwhich␈αis␈αeither␈αused␈αas␈αarguments␈α
in ␈↓ εx␈↓␈↓ πxtrailer.
␈↓ ↓H␈↓␈↓ αHthe␈α
Host-Host␈αprotocol␈α
or␈αas␈α
data␈αto
␈↓ ↓H␈↓␈↓ αHbe␈α~passed␈α~to␈α~a␈α~process␈α~utilizing ␈↓ εx␈↓␈↓ π_PACKET␈α∞FRAMING␈α∞¬␈α∞a␈α∂technique␈α∞used
␈↓ ↓H␈↓␈↓ αH␈↓↓Dialnet␈↓.
␈↓ ↓H␈↓αFile transfer protocol␈↓ ε↔Glossary␈↓ >19
␈↓ ↓H␈↓␈↓ αHin␈α~the␈α~line␈α~transmission␈α~protocol ␈↓ εx␈↓␈↓ π_WINDOW␈α⊂¬␈α⊃The␈α⊂margin␈α⊂for␈α⊃packets␈α⊂vs.
␈↓ ↓H␈↓␈↓ αHwhich␈α
requires␈α∞that␈α
all␈α∞packets␈α
start ␈↓ εx␈↓␈↓ πxtheir␈α#acknowledgements␈α$so␈α#that
␈↓ ↓H␈↓␈↓ αHwith␈α∞an␈α∞SOP␈α∞marker␈α∞and␈α∞end␈α
with ␈↓ εx␈↓␈↓ πxacknowledgements␈αdo␈αnot␈αhave␈αto␈α
be
␈↓ ↓H␈↓␈↓ αHan␈α
EOP␈α
marker.␈α
A␈α
packet␈α
must␈αbe ␈↓ εx␈↓␈↓ πxcompletely synchronous with packets.
␈↓ ↓H␈↓␈↓ αHproperly␈α"framed␈α"for␈α"it␈α"to␈α"be
␈↓ ↓H␈↓␈↓ αHconsidered␈α↔to␈α↔have␈α↔been␈α⊗received ␈↓ εx␈↓␈↓ π_WINDOW␈αSIZE␈α¬␈αThe␈αmaximum␈αnumber
␈↓ ↓H␈↓␈↓ αHcorrectly.␈α⊂ Framing␈α⊂errors␈α⊂cause␈α⊂the ␈↓ εx␈↓␈↓ πxof␈α↔unacknowledged␈α_packets␈α↔which
␈↓ ↓H␈↓␈↓ αHpacket␈α
in␈α
progress␈α
and␈α
all␈α
succeeding ␈↓ εx␈↓␈↓ πxmay␈α
be␈α
pending␈α
at␈α
any␈α
time.␈α
This␈α
is
␈↓ ↓H␈↓␈↓ αHdata␈αto␈αbe␈α
discarded␈αuntil␈αframing␈α
is ␈↓ εx␈↓␈↓ πxsimilar␈α⊂to␈α⊃what␈α⊂the␈α⊃ARPAnet␈α⊂calls
␈↓ ↓H␈↓␈↓ αHrestored. ␈↓ εx␈↓␈↓ πx"message allocation".
␈↓ ↓H␈↓␈↓ ↓hPACKET␈α∂NUMBER␈α∂¬␈α∂an␈α⊂8.-bit␈α∂quantity
␈↓ ↓H␈↓␈↓ αHwhich␈αuniquely␈αidenti≡es␈αa␈αpacket␈αat
␈↓ ↓H␈↓␈↓ αHa␈α
given␈α
point␈α
in␈α
time.␈α
This␈α
is␈α
used
␈↓ ↓H␈↓␈↓ αHto␈α∀identify␈α∀packets␈α∀if␈α∀necessary␈α∀in
␈↓ ↓H␈↓␈↓ αHerror␈αrecovery.␈α Packet␈αnumbers␈α
may
␈↓ ↓H␈↓␈↓ αHbe␈α∃recycled␈α∀after␈α∃both␈α∃hosts␈α∀have
␈↓ ↓H␈↓␈↓ αHagreed␈α_that␈α_the␈α_packet␈α↔associated
␈↓ ↓H␈↓␈↓ αHwith␈α∩this␈α∩packet␈α∩number␈α∩has␈α∩been
␈↓ ↓H␈↓␈↓ αHcorrectly sent and received.
␈↓ ↓H␈↓␈↓ ↓hPROCESS␈α∀¬␈α∀an␈α∀entity␈α∃utilizing␈α∀␈↓↓Dialnet␈↓.
␈↓ ↓H␈↓␈↓ αH␈↓↓Dialnet␈↓␈α?␈α↓tra≠c␈α?␈α↓consists␈α?of
␈↓ ↓H␈↓␈↓ αHcommunications between processes.
␈↓ ↓H␈↓␈↓ ↓hPROCESS␈α⊃ID␈α∩¬␈α⊃an␈α⊃8.-byte␈α∩ASCII␈α⊃string
␈↓ ↓H␈↓␈↓ αHwhich␈α
uniquely␈α
identi≡es␈α
the␈α
process.
␈↓ ↓H␈↓␈↓ αHSee␈α$the␈α#ICP␈α$and␈α#higher-level
␈↓ ↓H␈↓␈↓ αHprotocols for process-ID conventions.
␈↓ ↓H␈↓␈↓ ↓hSERVER␈α∞¬␈α
the␈α∞initially␈α
passive␈α∞process␈α
in
␈↓ ↓H␈↓␈↓ αHa connection.
␈↓ ↓H␈↓␈↓ ↓hSOP␈α∂¬␈α∂a␈α∂marker␈α∂used␈α∂to␈α∂indicate␈α∂start␈α∂of
␈↓ ↓H␈↓␈↓ αHpacket.␈α
SOP␈α
consists␈α
of␈α
ASCII␈α
DLE
␈↓ ↓H␈↓␈↓ αH(220)␈αfollowed␈αby␈αSTX␈α(203).␈α It␈αis␈αa
␈↓ ↓H␈↓␈↓ αHviolation␈α∀of␈α∃packet␈α∀framing␈α∃for␈α∀a
␈↓ ↓H␈↓␈↓ αHpacket␈α
to␈α
begin␈α
with␈α
anything␈α
other
␈↓ ↓H␈↓␈↓ αHthan␈α∪an␈α∩SOP.␈α∪ Any␈α∪data␈α∩received
␈↓ ↓H␈↓␈↓ αHwhen␈αan␈αSOP␈αis␈αexpected␈αshould␈αbe
␈↓ ↓H␈↓␈↓ αHdiscarded.␈α⊗ Note␈α⊗that␈α⊗the␈α⊗200␈α∃bit
␈↓ ↓H␈↓␈↓ αHmust␈α_be␈α_set␈α_for␈α_an␈α_SOP␈α→to␈α_be
␈↓ ↓H␈↓␈↓ αHrecognized as such.
␈↓ ↓H␈↓␈↓ ↓hTIMEOUT␈α
¬␈α
A␈α∞delay␈α
time␈α
for␈α∞a␈α
speci≡ed
␈↓ ↓H␈↓␈↓ αHaction.␈α∀ If␈α∀the␈α∀desired␈α∀action␈α∀does
␈↓ ↓H␈↓␈↓ αHnot␈α∂occur␈α∂within␈α∂a␈α∂speci≡ed␈α∂time,␈α∂a
␈↓ ↓H␈↓␈↓ αH"timeout" action is taken.
␈↓ ↓H␈↓␈↓ ↓hUSER␈α∩¬␈α∩the␈α∩initially␈α∩active␈α∩process␈α∪in␈α∩a
␈↓ ↓H␈↓␈↓ αHconnection.
␈↓ ↓H␈↓α␈↓ εP␈↓ <20
␈↓ ↓H␈↓α␈↓ β$Appendix D ␈↓ εx␈↓a␈αmail␈αprotocol.␈α Each␈αhost␈αis␈αonly␈αrequired␈αto
␈↓ ↓H␈↓α␈↓ β≡Mail protocol ␈↓ εx␈↓implement␈α∃what␈α∃parts␈α∀of␈α∃the␈α∃protocol␈α∀they
␈↓ εx␈↓require␈α_after␈α→a␈α_certain␈α→common␈α_minimum
␈↓ ↓H␈↓↓␈↓ α=by Mark Crispin 3/27/78 ␈↓ εx␈↓subset.␈α⊃ If␈α⊃a␈α⊃host␈α⊃wishes␈α⊃to␈α⊃have␈α∩a␈α⊃message
␈↓ εx␈↓heading␈α→(as␈α→well␈α_it␈α→might,␈α→since␈α_valuable
␈↓ ↓H␈↓The␈α∪host-host␈α∪protocol␈α∪described␈α∪in␈α∪Dialnet ␈↓ εx␈↓information␈α⊃such␈α∩as␈α⊃whom␈α⊃the␈α∩message␈α⊃was
␈↓ ↓H␈↓memo␈α
2␈αdocuments␈α
a␈αmechanism␈α
for␈α
hosts␈αto ␈↓ εx␈↓from␈α∂is␈α∂contained␈α∞therein),␈α∂it␈α∂may␈α∂generate␈α∞a
␈↓ ↓H␈↓establish␈α∂an␈α∂error-free␈α∂data␈α∂link␈α∂between␈α∞two ␈↓ εx␈↓header in any format.
␈↓ ↓H␈↓cooperating␈αprocesses.␈α This␈αprotocol,␈α
however,
␈↓ ↓H␈↓is␈α$insu≠cient␈α$to␈α$specify␈α#communication ␈↓ εx␈↓Keeping␈αthis␈αin␈αmind,␈αa␈αmethod␈αof␈αexpressing
␈↓ ↓H␈↓between␈α∂dissimilar␈α∂mail␈α∂processes␈α∂in␈α∂di≥erent ␈↓ εx␈↓such␈α∀information␈α∀in␈α∀a␈α∀clearly␈α∀unambiguous
␈↓ ↓H␈↓hosts.␈α" The␈α#processes␈α"must␈α#have␈α"some ␈↓ εx␈↓and␈αreadily␈αmachine-parsable␈αway␈αwas␈αsought.
␈↓ ↓H␈↓agreement␈α
as␈α
to␈αthe␈α
format␈α
messages␈αshould␈α
be ␈↓ εx␈↓The␈αLISP␈αsyntax␈αof␈αS-expressions␈αwas␈αchosen,
␈↓ ↓H␈↓in,␈α∃and␈α⊗how␈α∃mail␈α∃addressing␈α⊗and␈α∃delivery ␈↓ εx␈↓due to its extreme versatility.
␈↓ ↓H␈↓should be handled.
␈↓ εx␈↓In␈α≠the␈α≠mail␈α~protocol,␈α≠the␈α≠user␈α≠sends␈α~S-
␈↓ ↓H␈↓The␈αARPAnet␈αimplements␈αmail␈αas␈αpart␈αof␈αthe ␈↓ εx␈↓expressions␈α
as␈αcommands␈α
to␈αthe␈α
server,␈αwhich
␈↓ ↓H␈↓≡le␈α%transfer␈α%protocol.␈α% This␈α%has␈α%some ␈↓ εx␈↓replies␈αin␈αturn␈αusing␈αS-expressions.␈α No␈αactual
␈↓ ↓H␈↓advantages␈α⊂and␈α∂disadvantages.␈α⊂ A␈α∂short-term ␈↓ εx␈↓LISP␈α⊃evaluating␈α⊃is␈α⊂actually␈α⊃done;␈α⊃all␈α⊃that␈α⊂is
␈↓ ↓H␈↓advantage␈αof␈αthis␈αform␈αof␈αmailing␈αis␈αthat␈αit␈αis ␈↓ εx␈↓needed␈α
is␈α
a␈α
"LISP␈α
reader"␈α
which␈α
can␈α
recognize
␈↓ ↓H␈↓relatively␈αsimple␈αto␈αimplement␈αand␈αinterface␈αto ␈↓ εx␈↓an␈αS-expression␈αand␈αbe␈αable␈αto␈αdistinguish␈αthe
␈↓ ↓H␈↓an␈α∪existing␈α∩mail␈α∪system␈α∩if␈α∪the␈α∪current␈α∩mail ␈↓ εx␈↓CAR and CDR of an expression.
␈↓ ↓H␈↓system␈α⊗already␈α⊗uses␈α⊗something␈α∃approaching
␈↓ ↓H␈↓the standard format. ␈↓ εx␈↓For␈α→those␈α~unfamiliar␈α→with␈α→LISP,␈α~a␈α→brief
␈↓ εx␈↓introduction␈αto␈αthe␈αsyntax␈αis␈αon␈αthe␈αnext␈αpage.
␈↓ ↓H␈↓In␈α∀the␈α∀long␈α∀term,␈α∀however,␈α∀many␈α∪problems ␈↓ εx␈↓It␈αis␈α
not␈αintended␈αto␈α
be␈αa␈αdescription␈α
of␈αLISP
␈↓ ↓H␈↓have␈α∞arisen␈α∂as␈α∞increasingly,␈α∞more␈α∂varieties␈α∞of ␈↓ εx␈↓syntax,␈α∂but␈α∂rather␈α∂the␈α∂"LISPese"␈α∂syntax␈α∞used
␈↓ ↓H␈↓mail␈α∂formats␈α⊂have␈α∂appeared␈α∂and␈α⊂more␈α∂hairy ␈↓ εx␈↓by Dialnet mail.
␈↓ ↓H␈↓mail␈α⊂reading␈α⊂programs␈α⊂have␈α⊂been␈α⊂written␈α⊂to
␈↓ ↓H␈↓parse␈αthese␈αformats.␈α It␈αwould␈αbe␈αshort-sighted
␈↓ ↓H␈↓to␈α⊃assume␈α∩that␈α⊃this␈α∩would␈α⊃not␈α∩happen␈α⊃with ␈↓ εx␈↓α␈↓ λ]10. Syntax
␈↓ ↓H␈↓Dialnet␈α∨mail␈α∨as␈α≡well.␈α∨ In␈α∨addition,␈α≡the
␈↓ ↓H␈↓ARPAnet␈α↔mail␈α⊗formats␈α↔leave␈α⊗much␈α↔to␈α⊗be ␈↓ εx␈↓The␈α∂mail␈α⊂protocol␈α∂consists␈α∂of␈α⊂an␈α∂interchange
␈↓ ↓H␈↓desired. ␈↓ εx␈↓of␈α~S-expressions,␈α~which␈α~are␈α≠things␈α~inside
␈↓ εx␈↓balanced␈α∂parenthesis.␈α∂ Parenthesis␈α∂are␈α∂special
␈↓ ↓H␈↓First,␈α∪they␈α∪are␈α∪in␈α∩the␈α∪format␈α∪of␈α∪a␈α∩business ␈↓ εx␈↓characters␈α
in␈α
all␈α
cases.␈α
In␈α
order␈α
for␈α
them␈αto␈α
be
␈↓ ↓H␈↓memorandum,␈α
leading␈α
many␈α
to␈αthe␈α
assumption ␈↓ εx␈↓included␈α∞in␈α∞text,␈α∞they␈α∞must␈α∞be␈α∞quoted␈α∂with␈α∞a
␈↓ ↓H␈↓that␈α∞a␈α∞business␈α∞memorandum␈α∞was␈α∂the␈α∞proper ␈↓ εx␈↓slash␈α⊃(/)␈α⊃character.␈α⊃ Hence␈α⊃slash␈α⊃is␈α∩a␈α⊃special
␈↓ ↓H␈↓format for message headers to take. ␈↓ εx␈↓character as well.
␈↓ ↓H␈↓Second,␈α
too␈α
much␈α
∨exibility␈α
was␈α
allowed␈αin␈α
the ␈↓ εx␈↓Newline␈α∞is␈α∞represented␈α∞by␈α∞an␈α∞012␈α∞byte.␈α∞ This
␈↓ ↓H␈↓formats␈αof␈αvarious␈αitems,␈αwith␈αthe␈αunfortunate ␈↓ εx␈↓is␈α_distinct␈α→from␈α_the␈α_"line␈α→feed"␈α_character,
␈↓ ↓H␈↓result␈α
that␈α∞too␈α
many␈α∞esoteric␈α
varieties␈α∞of␈α
mail ␈↓ εx␈↓which does not exist in the mail protocol.
␈↓ ↓H␈↓commands␈α-ensued,␈α-and␈α.many␈α-trivial
␈↓ ↓H␈↓arguments␈α%over␈α%highly␈α&esoteric␈α%matters ␈↓ εx␈↓The␈α⊂character␈α∂set␈α⊂which␈α∂is␈α⊂legal␈α∂in␈α⊂the␈α∂mail
␈↓ ↓H␈↓developed. ␈↓ εx␈↓protocol␈α
consists␈α
of␈α
all␈α
the␈α∞printing␈α
characters
␈↓ εx␈↓in␈α∃the␈α∃1968␈α∃ASCII␈α∃character␈α∃set␈α∀including
␈↓ ↓H␈↓Dialnet␈αmail␈αavoids␈αthe␈αproblem␈αwith␈αmultiple ␈↓ εx␈↓space␈α∩(in␈α∩other␈α∩words,␈α∩the␈α∪characters␈α∩whose
␈↓ ↓H␈↓formats␈α⊗of␈α∃message␈α⊗headers␈α⊗by␈α∃eliminating ␈↓ εx␈↓ASCII␈α∪value␈α∪is␈α∪between␈α∪040␈α∪and␈α∪176)␈α∪and
␈↓ ↓H␈↓them␈α
entirely.␈α Instead,␈α
messages␈α
are␈αsent␈α
using ␈↓ εx␈↓newline.␈α In␈α∨particular,␈α rubout␈α and␈α∨the
␈↓ ↓H␈↓αMail protocol␈↓ ε∨Syntax␈↓ >21
␈↓ ↓H␈↓"control"␈α⊂characters␈α⊂(some␈α⊂of␈α⊂which␈α⊂are␈α∂used ␈↓ εx␈↓4. (FOO BAR (BAZ GARPLY)) is a list
␈↓ ↓H␈↓for␈α∂text␈α⊂formatting␈α∂on␈α⊂some␈α∂systems)␈α⊂are␈α∂not
␈↓ ↓H␈↓part␈α∂of␈α∞the␈α∂protocol␈α∞and␈α∂should␈α∞not␈α∂be␈α∞used. ␈↓ εx␈↓5.␈α
FOO␈α
is␈αthe␈α
CAR␈α
of␈α
2,␈α 3,␈α
and
␈↓ ↓H␈↓There␈α∪is␈α∀no␈α∪guarantee␈α∀that␈α∪the␈α∀server␈α∪will ␈↓ εx␈↓ 4
␈↓ ↓H␈↓interpret␈α∞these␈α
characters␈α∞in␈α
the␈α∞way␈α∞the␈α
user
␈↓ ↓H␈↓intended. ␈↓ εx␈↓6. (BAR (BAZ GARPLY)) is the CDR of 4
␈↓ ↓H␈↓If␈αfor␈αsome␈αreason␈α"control"␈αcharacters␈αMUST ␈↓ εx␈↓7. BAR is the CAR of 6
␈↓ ↓H␈↓be␈αsent,␈αit␈αshould␈αbe␈αnoted␈αthat␈αline␈αfeed␈αmust
␈↓ ↓H␈↓be␈α≡quoted␈α≡since␈α≡otherwise␈α≡it␈α∨would␈α≡be ␈↓ εx␈↓8. (BAZ GARPLY) is the CDR of 6
␈↓ ↓H␈↓interpreted␈α⊗as␈α↔newline.␈α⊗ Again,␈α↔servers␈α⊗are
␈↓ ↓H␈↓under␈α∃no␈α∀obligation␈α∃to␈α∃implement␈α∀"control" ␈↓ εx␈↓9. FOO/ BAR is an atom!!
␈↓ ↓H␈↓characters.
␈↓ ↓H␈↓There␈α⊗are␈α⊗no␈α⊗other␈α⊗special␈α⊗characters.␈α⊗ In ␈↓ εx␈↓α␈↓ λ¬11. Goals and Non-goals
␈↓ ↓H␈↓particular,␈α
whitespace␈α
and␈α
newlines␈α
within␈α
an
␈↓ ↓H␈↓S-expression␈αare␈αtreated␈αas␈αsigni≡cant␈αin␈αmany ␈↓ εx␈↓The following are goals:
␈↓ ↓H␈↓places.␈α~ In␈α~non-textual␈α~situations,␈α~such␈α~as
␈↓ ↓H␈↓delimiting␈α↔between␈α↔atomic␈α↔values,␈α_a␈α↔single ␈↓ εx␈↓1.␈α≥ To␈α≥avoid␈α≤repeating␈α≥the␈α≥mistakes␈α≤of
␈↓ ↓H␈↓whitespace␈αor␈α
newline␈αis␈αrequired␈α
and␈αfurther ␈↓ εx␈↓ARPAnet mail.
␈↓ ↓H␈↓whitespace/newlines␈α'are␈α'super∨uous␈α'and
␈↓ ↓H␈↓should␈α~be␈α~ignored.␈α~ However,␈α≠while␈α~mail ␈↓ εx␈↓2.␈α→ To␈α→have␈α~a␈α→system␈α→that␈α→is␈α~simple␈α→to
␈↓ ↓H␈↓servers␈α$should␈α%be␈α$prepared␈α%to␈α$ignore ␈↓ εx␈↓implement.
␈↓ ↓H␈↓super∨uous␈α
whitespace␈α
or␈α
newlines,␈α
it␈αis␈α
strictly
␈↓ ↓H␈↓speaking␈α~a␈α~violation␈α~of␈α~protocol␈α~to␈α→send ␈↓ εx␈↓3.␈α∩ To␈α∩establish␈α⊃strict␈α∩mail␈α∩formats␈α∩with␈α⊃no
␈↓ ↓H␈↓super∨uous whitespace or newlines. ␈↓ εx␈↓ambiguity␈α(of␈α(format,␈α(to␈α(prevent␈α'the
␈↓ εx␈↓proliferation␈α∀of␈α∀mail␈α∀header␈α∃formats␈α∀which
␈↓ ↓H␈↓Some␈α∂LISP␈α∂terms␈α∂need␈α∞to␈α∂be␈α∂de≡ned␈α∂for␈α∞the ␈↓ εx␈↓has occured in the ARPAnet.
␈↓ ↓H␈↓non-LISP␈α~user␈α→to␈α~make␈α→the␈α~rest␈α~of␈α→this
␈↓ ↓H␈↓document␈α↔clearer.␈α↔ Within␈α↔an␈α⊗S-expression, ␈↓ εx␈↓4.␈α To␈αallow␈αthe␈αmail␈αsender␈αcomplete␈αfreedom
␈↓ ↓H␈↓there␈α
can␈α
be␈αatoms␈α
or␈α
other␈αS-expressions.␈α
An ␈↓ εx␈↓in␈αwhat␈αis␈αincluded␈αin␈αthe␈α actual␈αbody␈αof␈αthe
␈↓ ↓H␈↓atom␈α∂is␈α∂an␈α⊂indivisible␈α∂"word".␈α∂ The␈α⊂other␈α∂S- ␈↓ εx␈↓mail message.
␈↓ ↓H␈↓expressions␈α⊂are␈α⊂called␈α⊂"lists",␈α⊂as␈α⊂they␈α⊂are␈α⊂not
␈↓ ↓H␈↓evaluated further. ␈↓ εx␈↓5.␈α⊂ To␈α⊂abolish␈α⊂mail␈α∂headers␈α⊂as␈α⊂they␈α⊂exist␈α∂in
␈↓ εx␈↓current mail systems entirely.
␈↓ ↓H␈↓The␈αCAR␈αof␈α
an␈αS-expression␈αor␈α
list␈αis␈αthe␈α
≡rst
␈↓ ↓H␈↓atom␈αin␈α
the␈αlist.␈α
The␈αCDR␈α
is␈αwhat␈αremains␈α
of ␈↓ εx␈↓6.␈α≥ To␈α≡replace␈α≥the␈α≡information␈α≥formerly
␈↓ ↓H␈↓the␈α∃S-expresssion␈α∃after␈α∀the␈α∃CAR␈α∃has␈α∀been ␈↓ εx␈↓contained␈α∃in␈α∃the␈α∃mail␈α∃header␈α∃with␈α∃a␈α∀mail
␈↓ ↓H␈↓removed.␈α_ These␈α_two␈α_terms␈α_are␈α_sometimes ␈↓ εx␈↓protocol negotiation.
␈↓ ↓H␈↓combined;␈αthe␈αsecond␈αelement␈αof␈αthe␈αlist␈αis␈αthe
␈↓ ↓H␈↓CAR␈α⊃of␈α⊃the␈α∩CDR␈α⊃or␈α⊃the␈α⊃CADR;␈α∩the␈α⊃third ␈↓ εx␈↓The␈αfollowing␈α
are␈α currently␈α
non-goals.␈α It␈α
is
␈↓ ↓H␈↓element␈α
is␈α
the␈α
CAR␈α
of␈α
the␈α
CDR␈α
of␈α
the␈α
CDR ␈↓ εx␈↓felt␈α⊗that␈α⊗ there␈α↔ is␈α⊗ no␈α⊗justi≡cation␈α↔at␈α⊗the
␈↓ ↓H␈↓or CADDR, etc. ␈↓ εx␈↓present time to consider these matters.
␈↓ ↓H␈↓EXAMPLES: ␈↓ εx␈↓1. Compatability with ARPAnet mail.
␈↓ ↓H␈↓1. FOO is an atom ␈↓ εx␈↓2.␈α∞ Message␈α
security␈α∞or␈α
encryption.␈α∞ This␈α
may
␈↓ εx␈↓happen later.
␈↓ ↓H␈↓2. (FOO BAR) is a list
␈↓ εx␈↓3. Explicit forwarding.
␈↓ ↓H␈↓3. (FOO BAR GARPLY) is a list
␈↓ ↓H␈↓αMail protocol␈↓ ¬FGoals and Non-goals␈↓ <22
␈↓ ↓H␈↓4.␈α∂ Detection␈α∞and␈α∂deletion␈α∞of␈α∂duplicate␈α∞copies ␈↓ εx␈↓␈↓ πxquoted with slash; however,
␈↓ ↓H␈↓of a message or of mail loops. ␈↓ εx␈↓␈↓ πxwhitespace and new lines are
␈↓ εx␈↓␈↓ πxsigni≡cant and are not converted to
␈↓ εx␈↓␈↓ πxsomething else by the mail process.
␈↓ ↓H␈↓α␈↓ β∪12. Mail Fields
␈↓ ↓H␈↓In␈α∞all␈α∞mail␈α∞≡elds,␈α
it␈α∞is␈α∞␈↓↓strongly␈α∞suggested␈↓␈α
that ␈↓ εx␈↓α␈↓ λ≡13. Mail Commands
␈↓ ↓H␈↓either␈α⊃upper␈α⊃or␈α⊃lower␈α⊃case␈α⊃be␈α⊃accepted,␈α⊂and
␈↓ ↓H␈↓that␈αlower␈αcase␈αbe␈αconverted␈αto␈αupper␈αcase␈αfor ␈↓ εx␈↓The␈α∂commands␈α⊂on␈α∂these␈α⊂pages␈α∂are␈α⊂the␈α∂more
␈↓ ↓H␈↓machine-␈α⊂reading␈α⊃purposes.␈α⊂ In␈α⊃addition,␈α⊂the ␈↓ εx␈↓important␈α_commands␈α_of␈α_the␈α→mail␈α_protocol
␈↓ ↓H␈↓o≠cial␈α⊃case␈α⊃for␈α⊃protocol␈α⊃commands␈α⊃is␈α⊂upper ␈↓ εx␈↓which all servers are expected to implement.
␈↓ ↓H␈↓case;␈αhowever,␈αa␈αserver␈αmust␈αnot␈αdepend␈αupon
␈↓ ↓H␈↓only␈αreceiving␈α
upper␈αcase.␈α
A␈αserver␈α
that␈αfails ␈↓ εx␈↓For␈αall␈αmail␈αcommands,␈αthe␈αreply␈α(FAILED)␈αis
␈↓ ↓H␈↓to␈α∂do␈α∞case-independent␈α∂matching␈α∞is␈α∂bound␈α∞to ␈↓ εx␈↓used␈αto␈αindicate␈αa␈αcommand␈αthat␈αfailed␈αdue␈αto
␈↓ ↓H␈↓encounter␈α∂problems␈α⊂in␈α∂interfacing␈α⊂with␈α∂other ␈↓ εx␈↓some␈α∂internal␈α∂bug␈α∂on␈α∂the␈α∂part␈α∂of␈α⊂the␈α∂server,
␈↓ ↓H␈↓systems. ␈↓ εx␈↓for␈α⊂such␈α∂things␈α⊂as␈α∂string␈α⊂space␈α⊂exhausted␈α∂or
␈↓ εx␈↓the␈α⊂like.␈α⊂ This␈α⊂code␈α⊂is␈α⊂NOT␈α⊂intended␈α⊃to␈α⊂be
␈↓ ↓H␈↓The␈α∪≡elds␈α∪or␈α∪arguments␈α∪to␈α∪a␈α∪mail␈α∩protocol ␈↓ εx␈↓used to indicate a user error.
␈↓ ↓H␈↓command are one of the following:
␈↓ εx␈↓I. (TO address)
␈↓ ↓H␈↓ADDRESS ¬ an atom or list which speci≡es a
␈↓ ↓H␈↓␈↓ αHvalid machine-readable mail address ␈↓ εx␈↓This␈α⊂is␈α⊂the␈α⊂most␈α⊂important␈α⊂command␈α⊂in␈α∂the
␈↓ ↓H␈↓␈↓ αHon the host in question. ␈↓ εx␈↓mail␈α⊂protocol,␈α∂and␈α⊂the␈α∂only␈α⊂required␈α⊂one.␈α∂ It
␈↓ εx␈↓speci≡es␈α⊃to␈α⊂whom␈α⊃the␈α⊃message␈α⊂is␈α⊃to␈α⊃be␈α⊂sent.
␈↓ ↓H␈↓HOST-IDENTIFICATION ¬ either phone- ␈↓ εx␈↓The␈α∂address␈α∂must␈α∂be␈α∂a␈α∂legal␈α∂address␈α∂for␈α∞the
␈↓ ↓H␈↓␈↓ αHnumber or a list whose CAR is ␈↓ εx␈↓server␈α
site;␈α
ie,␈α
it␈α
must␈α
be␈α∞machine-readable␈α
as
␈↓ ↓H␈↓␈↓ αHphone-number and whose CADR is ␈↓ εx␈↓opposed to a "human" address.
␈↓ ↓H␈↓␈↓ αHhost-name.
␈↓ εx␈↓ Examples:
␈↓ ↓H␈↓HOST-NAME ¬ an atom which speci≡es the
␈↓ ↓H␈↓␈↓ αHo≠cial host name as kept on record ␈↓ εx␈↓(TO MRC) (TO Network/ Wizard)
␈↓ ↓H␈↓␈↓ αHby the Dialnet implementors.
␈↓ εx␈↓ Replies:
␈↓ ↓H␈↓MESSAGE-TEXT ¬ a text string consisting
␈↓ ↓H␈↓␈↓ αHof the actual text of the message. ␈↓ εx␈↓(OK) The address has been accepted. More
␈↓ εx␈↓␈↓ πXdestinations may be speci≡ed for
␈↓ ↓H␈↓PHONE-NUMBER ¬ a dialup phone ␈↓ εx␈↓␈↓ πXthis message.
␈↓ ↓H␈↓␈↓ αHnumber in the form of a string of
␈↓ ↓H␈↓␈↓ αHdigits. ␈↓ εx␈↓(OK-NO-MORE) The address has been
␈↓ εx␈↓␈↓ πXaccepted, but no more destinations
␈↓ ↓H␈↓SUBJECT-TEXT ¬ an optional text string ␈↓ εx␈↓␈↓ πXmay be speci≡ed for this message.
␈↓ ↓H␈↓␈↓ αHused as a one-line "topic" of the
␈↓ ↓H␈↓␈↓ αHmessage. ␈↓ εx␈↓(UNKNOWN) The address has been rejected;
␈↓ εx␈↓␈↓ πXthere is no known destination at this
␈↓ ↓H␈↓TEXT ¬ a data type (see SUBJECT-TEXT ␈↓ εx␈↓␈↓ πXsite with that address.
␈↓ ↓H␈↓␈↓ αHand MESSAGE-TEXT) which is
␈↓ ↓H␈↓␈↓ αHcompletely quoted. TEXT ␈↓ εx␈↓(ILLEGAL) The address is in illegal format
␈↓ ↓H␈↓␈↓ αHoutwardly looks like a list in that ␈↓ εx␈↓␈↓ πXfor this site.
␈↓ ↓H␈↓␈↓ αHthere are parentheses at each end,
␈↓ ↓H␈↓␈↓ αHand parentheses and slashes must be ␈↓ εx␈↓II. (FROM address host-identi≡cation)
␈↓ ↓H␈↓αMail protocol␈↓ ¬aMail Commands␈↓ <23
␈↓ ↓H␈↓This␈α↔command␈α↔speci≡es␈α↔the␈α↔origin␈α_of␈α↔the ␈↓ εx␈↓(MESSAGE␈α⊃(It␈α⊃has␈α⊃been␈α⊃suggested␈α∩that␈α⊃the
␈↓ ↓H␈↓message.␈α The␈αaddress␈αmust␈αbe␈αa␈αlegal␈αaddress ␈↓ εx␈↓MAIL␈α↔protocol␈α↔be␈α↔enhanced␈α↔to␈α↔make␈α⊗the
␈↓ ↓H␈↓for␈α⊂the␈α⊂user␈α∂site's␈α⊂mail␈α⊂server;␈α∂ie,␈α⊂it␈α⊂must␈α∂be ␈↓ εx␈↓phase␈α∞of␈α∂the␈α∞moon␈α∂be␈α∞a␈α∂required␈α∞item␈α∂in␈α∞all
␈↓ ↓H␈↓machine-readable.␈α$ The␈α#address␈α$in␈α#this ␈↓ εx␈↓messages.␈α∃ It␈α∃is␈α∃felt␈α∃that␈α∃this␈α∃item␈α⊗is␈α∃very
␈↓ ↓H␈↓command␈αis␈αthe␈αdefault␈αfor␈αthe␈αSENDER␈αand ␈↓ εx␈↓important␈α⊃and␈α⊃all␈α⊂user␈α⊃and␈α⊃server␈α⊂programs
␈↓ ↓H␈↓REPLY-TO␈α∃addresses.␈α∀ It␈α∃should␈α∃be␈α∀noted ␈↓ εx␈↓will␈α∩be␈α∪expected␈α∩to␈α∪implement␈α∩this␈α∪by␈α∩next
␈↓ ↓H␈↓that␈α∩many␈α⊃sites␈α∩may␈α⊃not␈α∩wish␈α∩to␈α⊃implement ␈↓ εx␈↓Tuesday. ))
␈↓ ↓H␈↓SENDER␈α
and␈αREPLY-TO.␈α
This␈α
means␈αthat
␈↓ ↓H␈↓FROM␈αis␈αrequired␈αif␈αany␈αorigin␈αis␈αspeci≡ed␈αat ␈↓ εx␈↓ Replies:
␈↓ ↓H␈↓all,␈α∩and␈α∪that␈α∩it␈α∪should␈α∩specify␈α∪a␈α∩reasonable
␈↓ ↓H␈↓origin and reply address. ␈↓ εx␈↓(OK) The command was accepted. This is
␈↓ εx␈↓␈↓ πXthe only legal response.
␈↓ ↓H␈↓ Examples:
␈↓ ↓H␈↓(FROM MRC 415-497-1234)
␈↓ ↓H␈↓(FROM␈α∩DIALNET-HACKER␈α⊃(415-497-4321
␈↓ ↓H␈↓SU-AI))
␈↓ ↓H␈↓ Replies:
␈↓ ↓H␈↓(OK) The command was accepted. This is
␈↓ ↓H␈↓␈↓ α(the only legal response.
␈↓ ↓H␈↓III. (SUBJECT subject-text)
␈↓ ↓H␈↓This␈α
command␈α
speci≡es␈α
a␈α
subject␈α
text␈α
for␈α
the
␈↓ ↓H␈↓message.␈α⊂ It␈α⊂is␈α⊂used␈α∂to␈α⊂provide␈α⊂a␈α⊂short␈α∂topic
␈↓ ↓H␈↓for␈α∀the␈α∃message␈α∀for␈α∃the␈α∀reference␈α∃or␈α∀≡ling
␈↓ ↓H␈↓purposes of the eventual message reader.
␈↓ ↓H␈↓ Examples:
␈↓ ↓H␈↓(SUBJECT (Suggested addition to the MAIL
␈↓ ↓H␈↓␈↓ α(protocol))
␈↓ ↓H␈↓(SUBJECT (In reply to your message about
␈↓ ↓H␈↓␈↓ α(the MAIL protocol))
␈↓ ↓H␈↓ Replies:
␈↓ ↓H␈↓(OK) The command was accepted. This is
␈↓ ↓H␈↓␈↓ α(the only legal response.
␈↓ ↓H␈↓IV. (MESSAGE message-text)
␈↓ ↓H␈↓This␈α∂command␈α∂speci≡es␈α∂the␈α∂text␈α∂body␈α∂of␈α∂the
␈↓ ↓H␈↓message.
␈↓ ↓H␈↓ Example:
␈↓ ↓H␈↓α␈↓ εP␈↓ 924
␈↓ ↓H␈↓α␈↓ β&Appendix E ␈↓ εx␈↓Present scienti≡c work is in the ≡elds of
␈↓ ↓H␈↓α␈↓ β7Personnel ␈↓ εx␈↓␈↓ π8Arti≡cial Intelligence, Computation with
␈↓ εx␈↓␈↓ π8Symbolic Expressions, Mathematical
␈↓ ↓H␈↓Biography of John McCarthy ␈↓ εx␈↓␈↓ π8Theory of Computation, Time-Sharing
␈↓ εx␈↓␈↓ π8computer systems.
␈↓ ↓H␈↓BORN: September 4, 1927 in Boston,
␈↓ ↓H␈↓␈↓ αλMassachusetts ␈↓ εx␈↓PUBLICATIONS:
␈↓ ↓H␈↓EDUCATION: B.S. (Mathematics) ␈↓ εx␈↓[1] "Towards a Mathematical Theory of
␈↓ ↓H␈↓␈↓ αλCalifornia Institute of Technology, 1948. ␈↓ εx␈↓␈↓ π8Computation", in ␈↓↓Proc. IFIP Congress
␈↓ ↓H␈↓␈↓ αλPh.D. (Mathematics) Princeton ␈↓ εx␈↓↓␈↓ π862␈↓, North-Holland, Amsterdam, 1963.
␈↓ ↓H␈↓␈↓ αλUniversity, 1951.
␈↓ εx␈↓[2] "A Basis for a Mathematical Theory of
␈↓ ↓H␈↓HONORS AND SOCIETIES: American ␈↓ εx␈↓␈↓ π8Computation", in P. Bia≥ort and D.
␈↓ ↓H␈↓␈↓ αλMathematical Society, Association for ␈↓ εx␈↓␈↓ π8Hershberg (eds.), ␈↓↓Computer Programming
␈↓ ↓H␈↓␈↓ αλComputing Machinery, Sigma Xi, Sloan ␈↓ εx␈↓↓␈↓ π8and Formal Systems␈↓, North-Holland,
␈↓ ↓H␈↓␈↓ αλFellow in Physical Science (1957-59), ␈↓ εx␈↓␈↓ π8Amsterdam, 1963.
␈↓ ↓H␈↓␈↓ αλACM National Lecturer (1961), IEEE,
␈↓ ↓H␈↓␈↓ αλA.M. Turing Award from Association for ␈↓ εx␈↓[3] (with S. Boilen, E. Fredkin, J.C.R.
␈↓ ↓H␈↓␈↓ αλComputing Machinery (1971). ␈↓ εx␈↓␈↓ π8Licklider) "A Time-Sharing Debugging
␈↓ εx␈↓␈↓ π8System for a Small Computer", ␈↓↓Proc.
␈↓ ↓H␈↓PROFESSIONAL EXPERIENCE: Proctor ␈↓ εx␈↓↓␈↓ π8AFIPS Conf.␈↓ (SJCC), Vol. 23, 1963.
␈↓ ↓H␈↓␈↓ αλFellow, Princeton University (1950-51),
␈↓ ↓H␈↓␈↓ αλHiggins Research Instructor in ␈↓ εx␈↓[4] (with F. Corbato, M. Daggett) "The
␈↓ ↓H␈↓␈↓ αλMathematics, Princeton University (1951- ␈↓ εx␈↓␈↓ π8Linking Segment Subprogram Language
␈↓ ↓H␈↓␈↓ αλ53), Acting Assistant Professor of ␈↓ εx␈↓␈↓ π8and Linking Loader Programming
␈↓ ↓H␈↓␈↓ αλMathematics, Stanford University (1953- ␈↓ εx␈↓␈↓ π8Languages", ␈↓↓Comm. ACM␈↓, July 1963.
␈↓ ↓H␈↓␈↓ αλ55), Assistant Professor of Mathematics,
␈↓ ↓H␈↓␈↓ αλDartmouth College (1955-58), Assistant ␈↓ εx␈↓[5] "Problems in the Theory of
␈↓ ↓H␈↓␈↓ αλProfessor of Communication Science, ␈↓ εx␈↓␈↓ π8Computation", ␈↓↓Proc. IFIP Congress 1965␈↓.
␈↓ ↓H␈↓␈↓ αλM.I.T. (1958-61), Associate Professor of
␈↓ ↓H␈↓␈↓ αλCommunication Science, M.I.T. (1961-62), ␈↓ εx␈↓[6] "Time-Sharing Computer Systems", in W.
␈↓ ↓H␈↓␈↓ αλProfessor of Computer Science Stanford ␈↓ εx␈↓␈↓ π8Orr (ed.), ␈↓↓Conversational Computers␈↓,
␈↓ ↓H␈↓␈↓ αλUniversity (1962 - present). ␈↓ εx␈↓␈↓ π8Wiley, 1966.
␈↓ ↓H␈↓PROFESSIONAL RESPONSIBILITIES ␈↓ εx␈↓[7] "A Formal Description of a Subset of
␈↓ ↓H␈↓␈↓ αλAND SCIENTIFIC INTERESTS: With ␈↓ εx␈↓␈↓ π8Algol", in T. Steele (ed.), ␈↓↓Formal
␈↓ ↓H␈↓␈↓ αλMarvin Minsky organized and directed ␈↓ εx␈↓↓␈↓ π8Language Description Languages for
␈↓ ↓H␈↓␈↓ αλthe Arti≡cial Intelligence Project at ␈↓ εx␈↓↓␈↓ π8Computer Programming␈↓, North-Holland,
␈↓ ↓H␈↓␈↓ αλM.I.T. ␈↓ εx␈↓␈↓ π8Amsterdam, 1966.
␈↓ ↓H␈↓Organized and directs Stanford Arti≡cial ␈↓ εx␈↓[8] "Information", ␈↓↓Scienti≡c American␈↓,
␈↓ ↓H␈↓␈↓ αλIntelligence Project ␈↓ εx␈↓␈↓ π8September 1966.
␈↓ ↓H␈↓Developed the LISP programming system for ␈↓ εx␈↓[9] "Computer Control of a Hand and Eye",
␈↓ ↓H␈↓␈↓ αλcomputing with symbolic expressions, ␈↓ εx␈↓␈↓ π8in ␈↓↓Proc. Third All-Union Conference on
␈↓ ↓H␈↓␈↓ αλparticipated in the development of the ␈↓ εx␈↓↓␈↓ π8Automatic Control (Technical Cybernetics)␈↓,
␈↓ ↓H␈↓␈↓ αλALGOL 58 and the ALGOL 60 ␈↓ εx␈↓␈↓ π8Nauka, Moscow, 1967 (Russian).
␈↓ ↓H␈↓␈↓ αλlanguages.
␈↓ εx␈↓[10] (with D. Brian, G. Feldman, and J.
␈↓ ↓H␈↓αPersonnel␈↓ εP␈↓ ;25
␈↓ ↓H␈↓␈↓ αλAllen) "THOR ¬ A Display Based Time- ␈↓ εx␈↓␈↓ π8Book", a review of ␈↓↓Computer Power and
␈↓ ↓H␈↓␈↓ αλSharing System", ␈↓↓Proc. AFIPS Conf.␈↓ ␈↓ εx␈↓↓␈↓ π8Human Reason␈↓ by Joseph Weizenbaum
␈↓ ↓H␈↓␈↓ αλ(FJCC), Vol. 30, Thompson, ␈↓ εx␈↓␈↓ π8(W.H. Freeman and Co., San Francisco,
␈↓ ↓H␈↓␈↓ αλWashington, D.C., 1967. ␈↓ εx␈↓␈↓ π81976), ␈↓↓SIGART Newsletter␈↓ 58, June
␈↓ εx␈↓␈↓ π81976.
␈↓ ↓H␈↓[11] (with James Painter) "Correctness of a
␈↓ ↓H␈↓␈↓ αλCompiler for Arithmetic Expressions", ␈↓ εx␈↓[21] McCarthy, John, Review: ␈↓↓Computer
␈↓ ↓H␈↓␈↓ αλAmer. Math. Soc., ␈↓↓Proc. Symposia in ␈↓ εx␈↓↓␈↓ π8Power and Human Reason␈↓, by Joseph
␈↓ ↓H␈↓↓␈↓ αλApplied Math., Math. Aspects of ␈↓ εx␈↓␈↓ π8Weizenbaum (W.H. Freeman and Co.,
␈↓ ↓H␈↓↓␈↓ αλComputer Science␈↓, New York, 1967. ␈↓ εx␈↓␈↓ π8San Francisco, 1976) in ␈↓↓Physics Today␈↓,
␈↓ εx␈↓␈↓ π81977.
␈↓ ↓H␈↓[12] "Programs with Common Sense", in
␈↓ ↓H␈↓␈↓ αλMarvin Minsky (ed.), ␈↓↓Semantic ␈↓ εx␈↓[22] McCarthy, John, "Another
␈↓ ↓H␈↓↓␈↓ αλInformation Processing␈↓, MIT Press, ␈↓ εx␈↓␈↓ π8SAMEFRINGE", ␈↓↓SIGART Newsletter␈↓
␈↓ ↓H␈↓␈↓ αλCambridge, 1968. ␈↓ εx␈↓␈↓ π8No. 61, February 1977.
␈↓ ↓H␈↓[13] (with Lester Earnest, D. Raj. Reddy, ␈↓ εx␈↓[23] McCarthy, John, "The Home
␈↓ ↓H␈↓␈↓ αλPierre Vicens) "A Computer with Hands, ␈↓ εx␈↓␈↓ π8Information Terminal", ␈↓↓The Grolier
␈↓ ↓H␈↓␈↓ αλEyes, and Ears", ␈↓↓Proc. AFIPS Conf.␈↓ ␈↓ εx␈↓↓␈↓ π8Encyclopedia␈↓, 1977.
␈↓ ↓H␈↓␈↓ αλ(FJCC), 1968.
␈↓ εx␈↓[24] McCarthy, John, M. Sato, T. Hayashi, S.
␈↓ ↓H␈↓[14] (with Patrick Hayes) "Some ␈↓ εx␈↓␈↓ π8Igarashi, "On the Model Theory of
␈↓ ↓H␈↓␈↓ αλPhilosophical Problems from the ␈↓ εx␈↓␈↓ π8Knowledge", ␈↓↓Proc. Int. Joint Conf. on A.I.␈↓,
␈↓ ↓H␈↓␈↓ αλStandpoint of Arti≡cial Intelligence", in ␈↓ εx␈↓␈↓ π8August 1977.
␈↓ ↓H␈↓␈↓ αλDonald Michie (ed.), ␈↓↓Machine Intelligence
␈↓ ↓H␈↓↓␈↓ αλ4␈↓, American Elsevier, New York, 1969. ␈↓ εx␈↓[25] McCarthy, John, "Epistemological
␈↓ εx␈↓␈↓ π8Problems of Arti≡cial Intelligence", ␈↓↓Proc.
␈↓ ↓H␈↓[15] "The Home Information Terminal", ␈↓↓Man ␈↓ εx␈↓↓␈↓ π8Int. Joint Conf. on A.I.␈↓, August 1977.
␈↓ ↓H␈↓↓␈↓ αλand Computer, Proc. Int. Conf., Bordeaux,
␈↓ ↓H␈↓↓␈↓ αλ1970␈↓, S. Karger, New York, 1972. ␈↓ εx␈↓[26] McCarthy, John, "History of LISP", ␈↓↓Proc.
␈↓ εx␈↓↓␈↓ π8ACM Conf. on History of Programming
␈↓ ↓H␈↓[16] McCarthy, John, "Mechanical Servants ␈↓ εx␈↓↓␈↓ π8Languages,␈↓ 1978.
␈↓ ↓H␈↓␈↓ αλfor Mankind", ␈↓↓Britannica Yearbook of
␈↓ ↓H␈↓↓␈↓ αλScience and the Future␈↓, 1973. ␈↓ εx␈↓[27] McCarthy, John, "Representation of
␈↓ εx␈↓␈↓ π8Recursive Programs in First Order
␈↓ ↓H␈↓[17] McCarthy, John, Book Review: ␈↓ εx␈↓␈↓ π8Logic", ␈↓↓Proc. Int. Conf. on Mathematical
␈↓ ↓H␈↓␈↓ αλ"Arti≡cial Intelligence: A General Survey" ␈↓ εx␈↓↓␈↓ π8Studies of Information Processing,␈↓ Kyoto
␈↓ ↓H␈↓␈↓ αλby Sir James Lighthill, ␈↓↓Arti≡cial ␈↓ εx␈↓␈↓ π8Japan, 1978.
␈↓ ↓H␈↓↓␈↓ αλIntelligence␈↓, Vol. 5, No. 3, Fall 1974.
␈↓ εx␈↓[28] McCarthy, John, "Ascribing Mental
␈↓ ↓H␈↓[18] McCarthy, John, "Modeling Our Minds" ␈↓ εx␈↓␈↓ π8Qualities to Machines", ␈↓↓Philosophical
␈↓ ↓H␈↓␈↓ αλ␈↓↓Science Year 1975␈↓, The World Book ␈↓ εx␈↓↓␈↓ π8Perspectives in Arti≡cial Intelligence,␈↓
␈↓ ↓H␈↓␈↓ αλScience Annual, Field Enterprises ␈↓ εx␈↓␈↓ π8Martin Ringle (ed.), Humanities Press, to
␈↓ ↓H␈↓␈↓ αλEducational Corporation, Chicago, 1974. ␈↓ εx␈↓␈↓ π8appear 1978.
␈↓ ↓H␈↓[19] McCarthy, John, "Proposed Criterion for
␈↓ ↓H␈↓␈↓ αλa Cipher to be Probable-word-proof",
␈↓ ↓H␈↓␈↓ αλ␈↓↓Comm. ACM␈↓, February 1975.
␈↓ ↓H␈↓[20] McCarthy, John, "An Unreasonable
␈↓ ↓H␈↓α␈↓ εP␈↓ <26
␈↓ ↓H␈↓α␈↓ β'Appendix F ␈↓ εx␈↓The␈α⊂computer␈α⊂facilities␈α∂of␈α⊂the␈α⊂Stanford␈α∂Low
␈↓ ↓H␈↓α␈↓ β;Facilities ␈↓ εx␈↓Overhead␈α∂Timesharing␈α∞System␈α∂consist␈α∂of␈α∞the
␈↓ εx␈↓following.
␈↓ ↓H␈↓The␈α⊗computer␈α⊗ facilities␈α⊗ of␈α⊗ the␈α⊗ Stanford
␈↓ ↓H␈↓Arti≡cial␈α⊂ Intelligence␈α⊂Laboratory␈α⊂include␈α∂the ␈↓ εx␈↓Central processor: Digital Equipment
␈↓ ↓H␈↓following␈α⊗equipment,␈α↔most␈α⊗of␈α↔it␈α⊗purchased ␈↓ εx␈↓␈↓ λ_Corporation DECsystem 2050 (36
␈↓ ↓H␈↓with U.S. Government research funds. ␈↓ εx␈↓␈↓ λ_bit machine).
␈↓ ↓H␈↓Central processors: Digital Equipment ␈↓ εx␈↓Primary store: 512k words (36 bit) of 1
␈↓ ↓H␈↓␈↓ αhCorporation KL10 and KA10. ␈↓ εx␈↓␈↓ λ_microsecond DEC core.
␈↓ ↓H␈↓Primary store: 1,048k words (36 bit) of 1 to␈↓ εx␈↓File store: 3 DEC RP06 disc drives (capacity:
␈↓ ↓H␈↓␈↓ αh1.6 microsecond core (DEC and ␈↓ εx␈↓␈↓ λ_4.8 x 10␈↓∧9␈↓ bits).
␈↓ ↓H␈↓␈↓ αhAmpex)
␈↓ εx␈↓Peripherals: DEC 9-track tape drive, 3
␈↓ ↓H␈↓File store: Ampex disc ≡le (3330-11␈↓ εx␈↓␈↓ λ_Printronix line printers.
␈↓ ↓H␈↓␈↓ αhtype), 7 spindles (capacity: 9.1 x
␈↓ ↓H␈↓␈↓ αh10␈↓∧9␈↓ bits). ␈↓ εx␈↓Terminals: 60+ Lear-Siegler ADM-3 and
␈↓ εx␈↓␈↓ λ_Hazeltine 1500 terminals.
␈↓ ↓H␈↓Peripherals: 4 Dectape drives, 2 mag
␈↓ ↓H␈↓␈↓ αhtape drives (7 channel), line
␈↓ ↓H␈↓␈↓ αhprinter, Calcomp plotter, Xerox
␈↓ ↓H␈↓␈↓ αhGraphics Printer
␈↓ ↓H␈↓Terminals: 58 Data Disc displays, 6 III
␈↓ ↓H␈↓␈↓ αhdisplays, 4 IMLAC displays, 25
␈↓ ↓H␈↓␈↓ αhDatamedia displays, 5 TI
␈↓ ↓H␈↓␈↓ αhterminals
␈↓ ↓H␈↓Realtime processors: DEC PDP-11/45 and
␈↓ ↓H␈↓␈↓ αhSPS-41 with 8k words (16 bit) of
␈↓ ↓H␈↓␈↓ αhcore and 197k words of Intel
␈↓ ↓H␈↓␈↓ αhMOS memory.
␈↓ ↓H␈↓Communications processor: BBN TIP
␈↓ ↓H␈↓␈↓ αh(Honeywell DDP-316) connected
␈↓ ↓H␈↓␈↓ αhto the ARPA Network.
␈↓ ↓H␈↓Special equipment: Audio input and output
␈↓ ↓H␈↓␈↓ αhsystems, hand-eye equipment (3
␈↓ ↓H␈↓␈↓ αhTV cameras, 2 arms), remote-
␈↓ ↓H␈↓␈↓ αhcontrolled cart.
␈↓ ↓H␈↓α␈↓ εP␈↓ :27
␈↓ ↓H␈↓α␈↓ β%Appendix G
␈↓ ↓H␈↓α␈↓ β Current Support
␈↓ ↓H␈↓Prof.␈α⊂McCarthy␈α⊂is␈α⊂currently␈α⊂being␈α⊂supported
␈↓ ↓H␈↓by␈α∩the␈α∩Advanced␈α∩Research␈α∪Projects␈α∩Agency
␈↓ ↓H␈↓under␈α.Contract␈α.MDA903-76-C-0206␈α-(1
␈↓ ↓H␈↓January␈α∞1976␈α∞-␈α∞30␈α∞Sept.␈α∞ 1978,␈α
$918,000/year)
␈↓ ↓H␈↓and␈α⊂by␈α⊂the␈α⊂National␈α⊂Science␈α⊂Foundation␈α⊂for
␈↓ ↓H␈↓Basic␈α
Research␈αin␈α
Arti≡cial␈α
Intelligence␈αunder
␈↓ ↓H␈↓Grant␈αMCS␈α
78-00524,␈αJuly␈α
1978␈αthrough␈α
June
␈↓ ↓H␈↓1979␈α∨at␈α∨$105,197.␈α∨ Prof.␈α∨McCarthy␈α≡also
␈↓ ↓H␈↓oversees␈α
but␈α
receives␈α
no␈α
personal␈α
support␈α
from
␈↓ ↓H␈↓the following NSF grants and contracts.
␈↓ ↓H␈↓1. Veri≡cation Oriented Programming under
␈↓ ↓H␈↓␈↓ ↓xGrant Number MCS76-00327, June 1976 -
␈↓ ↓H␈↓␈↓ ↓xJune 1980, $93,000/year.
␈↓ ↓H␈↓2. Exploratory Study of Computer Integrated
␈↓ ↓H␈↓␈↓ ↓xAssembly Systems, Contract DAR78-15914,
␈↓ ↓H␈↓␈↓ ↓xAugust 1978 - July 1980, $300,000/year.
␈↓ ↓H␈↓3. "A Uni≡ed Approach to Automatic
␈↓ ↓H␈↓␈↓ ↓xProgramming", Grant MCS-76-83655, July
␈↓ ↓H␈↓␈↓ ↓x1977 - June 1979, $53,350/year.
␈↓ ↓H␈↓4. "Veri≡cation of Operating Systems written
␈↓ ↓H␈↓␈↓ ↓xin Concurrent Pascal", Grant MCS 77-
␈↓ ↓H␈↓␈↓ ↓x01194, August 1977 - July 1979,
␈↓ ↓H␈↓␈↓ ↓x$37,000/year.
␈↓ ↓H␈↓α␈↓ εP␈↓ <29
␈↓ ↓H␈↓α␈↓ ¬|Appendix H
␈↓ ↓H␈↓α␈↓ ε!Budget
␈↓ ↓H␈↓Two years beginning 1 January 1979.
␈↓ ↓H␈↓β␈↓ α_ Man 1 Jan.'79 to 1 Jan.'80 to
␈↓ ↓H␈↓β␈↓ α_ Months 31 Dec.'79 31 Dec.'80
␈↓ ↓H␈↓β␈↓ α_A. SALARIES AND WAGES
␈↓ ↓H␈↓β␈↓ α_ 1.Senior Personnel
␈↓ ↓H␈↓β␈↓ α_ Professor John McCarthy 1 - - - - - -
␈↓ ↓H␈↓β␈↓ α_ Principal Investigator (5%)
␈↓ ↓H␈↓β␈↓ α_ Lester Earnest (10%) 2 $4,058 $4,383
␈↓ ↓H␈↓β␈↓ α_ Res. Scientist & Lecturer
␈↓ ↓H␈↓β␈↓ α_ 2..Other Personnel
␈↓ ↓H␈↓β␈↓ α_ a.Programmer
␈↓ ↓H␈↓β␈↓ α_ Mark Crispin (100%) 14,416 15,572
␈↓ ↓H␈↓β␈↓ α_ b.Student Research Assistants
␈↓ ↓H␈↓β␈↓ α_ Acad. yr. 50%, Sum. 100% 7,710 8,322
␈↓ ↓H␈↓β␈↓ α_ c.Support Personnel
␈↓ ↓H␈↓β␈↓ α_ Secretary (10%) 1,253 1,353
␈↓ ↓H␈↓β␈↓ α_ Electronic Technician (15%) 2,404 2,596
␈↓ ↓H␈↓β␈↓ α_ ______ ______
␈↓ ↓H␈↓β␈↓ α_ Total Salaries and Wages 29,841 32,226
␈↓ ↓H␈↓β␈↓ α_B. STAFF BENEFITS 6,155 7,025
␈↓ ↓H␈↓β␈↓ α_ 20.3% till 8/31/79,
␈↓ ↓H␈↓β␈↓ α_ 21.6% till 8/31/80,
␈↓ ↓H␈↓β␈↓ α_ 22.4% thereafter ______ ______
␈↓ ↓H␈↓β␈↓ α_C. TOTAL SALARIES, WAGES, 35,996 39,251
␈↓ ↓H␈↓β␈↓ α_ AND STAFF BENEFITS
␈↓ ↓H␈↓β␈↓ α_D. PERMANENT EQUIPMENT
␈↓ ↓H␈↓β␈↓ α_ 4 microprocessor-controlled modems 8,000
␈↓ ↓H␈↓β␈↓ α_E. EXPENDABLE SUPPLIES 1,000 1,000
␈↓ ↓H␈↓β␈↓ α_ & EQUIPMENT(e.g., copying,
␈↓ ↓H␈↓β␈↓ α_ office supplies,postage,
␈↓ ↓H␈↓β␈↓ α_ freight,consulting,honoraria)
␈↓ ↓H␈↓β␈↓ α_F. TRAVEL 1,200 1,200
␈↓ ↓H␈↓β␈↓ α_G. PUBLICATION COSTS 500 500
␈↓ ↓H␈↓β␈↓ α_H. COMPUTER COSTS - - - - - -
␈↓ ↓H␈↓αBudget␈↓ εP␈↓ :30
␈↓ ↓H␈↓β␈↓ α_I. OTHER COSTS
␈↓ ↓H␈↓β␈↓ α_ Telephone 200 200
␈↓ ↓H␈↓β␈↓ α_ ______ ______
␈↓ ↓H␈↓β␈↓ α_J. TOTAL DIRECT COSTS (A through I) 46,896 42,151
␈↓ ↓H␈↓β␈↓ α_K. INDIRECT COSTS 22,560 24,448
␈↓ ↓H␈↓β␈↓ α_ 58% of (J less D) ------ ------
␈↓ ↓H␈↓β␈↓ α_L. TOTAL COSTS (J plus K) $69,456 $66,599
␈↓ ↓H␈↓β␈↓ α_ ------- -------
␈↓ ↓H␈↓β␈↓ α_Total Budget (two years) $136,055
␈↓ ↓H␈↓¬The source file of this document is DIAL78.PUB[DIA,JMC]@SU-AI.